{
	"id": "52d03614d1dfa86c1647a098fd1face2",
	"_format": "hh-sol-build-info-1",
	"solcVersion": "0.8.20",
	"solcLongVersion": "0.8.20+commit.a1b79de6",
	"input": {
		"language": "Solidity",
		"settings": {
			"viaIR": true,
			"optimizer": {
				"enabled": true,
				"runs": 200
			},
			"outputSelection": {
				"*": {
					"": [
						"ast"
					],
					"*": [
						"abi",
						"metadata",
						"devdoc",
						"userdoc",
						"storageLayout",
						"evm.legacyAssembly",
						"evm.bytecode",
						"evm.deployedBytecode",
						"evm.methodIdentifiers",
						"evm.gasEstimates",
						"evm.assembly"
					]
				}
			},
			"remappings": []
		},
		"sources": {
			"contracts/TicketContract.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";  \nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\"; \nimport \"@openzeppelin/contracts/token/common/ERC2981.sol\";\nimport \"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\nimport 'abdk-libraries-solidity/ABDKMathQuad.sol';  \nimport \"@openzeppelin/contracts/utils/Base64.sol\";\nimport \"./interfaces/IEventContract.sol\";\nimport \"./interfaces/ITixSellNftTemplate.sol\";\nimport \"./interfaces/ITicketReservationContract.sol\";\nimport \"./interfaces/ITicketTypeContract.sol\";\nimport \"./factories/ITicketReservationFactory.sol\";\nimport \"./TokenPaymentSplitter.sol\"; \n//import \"hardhat/console.sol\";\n/*\n    Ticket smart contract for a specific Event of a specific organizer (the owner)\n*/\ncontract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {\n    bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n   \n   uint256 private _ticketIds;\n  \n   uint96 internal royaltyValue = 200;\n   bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a;\n   \n   address payable public tixSellpaymentSplitter;\n   address payable public resellPaiementSplitter;\n   address payable public organizerPaymentSplitter;\n   \n   AggregatorV3Interface internal dataFeed;\n   AggregatorV3Interface internal dataFeedMatic;\n\n    IEventContract public eventContract;\n    ITicketReservationContract public ticketReservationContract;\n    struct TokenInfo {\n        IERC20 paytoken;\n        bool exists;\n    }\n    TokenInfo[] public AllowedCrypto; \n    ITixSellNftTemplateContract nftTemplateContract; \n\n\n    struct Ticket {\n        uint256 ticketId;\n        uint256 ticketTypeId;\n        address owner;\n        bytes32 hashedTicket; // EventId:TicketType:TicketId encrypté en SHA256\n        uint256 pricePaid;\n        uint256 purchasedDate;\n        bool used;\n        bool exists;\n    }\n\n   \n     // Mappings\n    mapping(uint256 => Ticket) public tickets;\n    mapping(uint256 => string) public ticketSpecificUri; \n    mapping(uint256 => uint256) public ticketTypesForTicket;\n    mapping(address => mapping(uint256 => uint256)) public nbTicketForUserAndTicketTypes;\n   \n    // Events\n\n    event NewTicket(uint256 ticketTypeId, uint256 ticketId,address owner);\n   \n  \n    //1 smart contract par organisateur\n   modifier onlyFounders() {\n        require(\n           hasRole(ADMIN_ROLE, msg.sender), \"Only founders can do that\"\n        );\n        _;\n    }\n\n   \n    modifier onlyAdmin() {\n         require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\");\n        _;\n    }\n\n    \n    function getLatestData() public view returns (int) {\n        // prettier-ignore\n        (\n            /* uint80 roundID */,\n            int answer,\n            /*uint startedAt*/,\n            /*uint timeStamp*/,\n            /*uint80 answeredInRound*/\n        ) = dataFeed.latestRoundData();\n        return answer;\n    }\n\n    function getLatestDataMaticUsd() public view returns(int){\n         (\n            /* uint80 roundID */,\n            int answer,\n            /*uint startedAt*/,\n            /*uint timeStamp*/,\n            /*uint80 answeredInRound*/\n        ) = dataFeedMatic.latestRoundData();\n        return answer;\n    }\n   constructor(address initialOwner,\n        address[] memory _admins,\n        address _tixSellpaymentSplitter,\n        address _organizerEventPaymentSplitter,\n        address _resellPaiementSplitter,\n        address _dataFeedEURUSD,\n        address _eventContract ,\n        string memory _eventName,\n        address _nftTemplateContract,\n        address _ticketReservationFactoryAddress,\n        uint96 royalty      \n    )  Ownable(initialOwner)  ERC721(string.concat(_eventName,\" by SellTix\"), string.concat(_eventName,\" SellTixTickets\")) {\n        \n        for (uint256 i = 0; i < _admins.length; ++i) {\n         \n            _grantRole(ADMIN_ROLE, _admins[i]);\n             _grantRole(DEFAULT_ADMIN_ROLE, _admins[i]);\n        }\n        resellPaiementSplitter = payable(_resellPaiementSplitter);\n        tixSellpaymentSplitter = payable(_tixSellpaymentSplitter);\n        organizerPaymentSplitter = payable(_organizerEventPaymentSplitter);\n         dataFeed = AggregatorV3Interface(\n            _dataFeedEURUSD\n        );\n        //TODO CHANGE FOR PROD\n        //Mumbai 0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada\n        dataFeedMatic =  AggregatorV3Interface(\n            0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada\n        );\n        //USDT MUMBAI :  0x2F7b97837F2D14bA2eD3a4B2282e259126A9b848  MAINNET: 0xc2132d05d31c914a87c6611c10748aeb04b58e8f\n         // USDC MUMBAI : 0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97 //MAINET : 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\n         addCurrency(IERC20(0x2F7b97837F2D14bA2eD3a4B2282e259126A9b848));\n         addCurrency(IERC20(0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97));\n         \n        eventContract = IEventContract(_eventContract);\n        nftTemplateContract = ITixSellNftTemplateContract(_nftTemplateContract);\n        //Deploy reservation cntract\n        ITicketReservationFactory ticketReservationFactory = ITicketReservationFactory(_ticketReservationFactoryAddress);\n        address ticketReservationContractAddress = ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract);\n        ticketReservationContract = ITicketReservationContract(ticketReservationContractAddress);\n      \n        // default royalties of event for all tickets must be 100,200,300,..., 10 000 (for 100%)  \n        uint96 finalRoyalty = royalty;\n        _setDefaultRoyalty(resellPaiementSplitter, finalRoyalty);\n    }\n\n     \n\n     function addCurrency(\n        IERC20 _paytoken        \n    ) public {\n       \n        AllowedCrypto.push(\n            TokenInfo({\n                paytoken: _paytoken,\n                exists:true\n            })\n        );\n    }\n    function setRoyalty(uint96 _newroyalty) public onlyFounders {\n        royaltyValue = _newroyalty;\n      }\n\n    \n    // Founders or owner can override hashed Ids for security reasons (like a hacked of current ticket id)\n    // function setHashTicketId(\n    //     uint256 _tokenId,\n    //     bytes32 _hashedTicketId\n    // ) public onlyFounders  {\n    //     Ticket storage theTicket = tickets[_tokenId];\n    //     theTicket.hashedTicket = _hashedTicketId;\n    // }\n    function getBalance() public view returns (uint256) {\n        return address(this).balance;\n    }\n\n   \n   function setTicketURI(uint256 _tokenId, string calldata _uri) external onlyAdmin {\n        ticketSpecificUri[_tokenId]=_uri;\n    }\n \n\n  \n  \n    function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{\n        uint256 tokenId = _ticketIds;\n        _safeMint(_to, tokenId);\n            // hashcode\n        string memory secret = string(abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)));\n        bytes32 hashedCode = sha256(bytes(secret));\n\n        tickets[tokenId] = Ticket(\n                tokenId,\n                _ticketTypeId,\n                _to,\n                hashedCode,\n                _pricePerTicket,\n                block.timestamp,\n                false,\n                true\n            );\n            eventContract.addTicketToListOfTicketType(_ticketTypeId,tokenId);\n            ticketTypesForTicket[tokenId] = _ticketTypeId;\n            nbTicketForUserAndTicketTypes[_to][_ticketTypeId] = nbTicketForUserAndTicketTypes[_to][_ticketTypeId]+1;\n             _ticketIds+=1; \n            emit NewTicket(_ticketTypeId,tokenId,_to);\n    }\n\n    function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){\n        TixSellLibrary.TicketType memory theTicketType = ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId);\n        uint256 pricePerTicket = theTicketType.ticketPrice;\n       \n        if (theTicketType.earlyBid){\n            if (theTicketType.discountEndDate > block.timestamp){\n                // can apply discount\n                pricePerTicket = theTicketType.discountPrice;\n            }\n        }\n        return pricePerTicket;\n    }\n\n    // Mint en USDT\n    // Il faut tenir compte de notre pourcentage 2%\n    //Ou alors on considère que le mint est toujours passé en euros... \n    \n    //Doit passer son ticket de réservation\n\n    function buyTicket(string memory _reservationId,uint256 _ticketTypeId,uint256 _amount,bool _withERC20,uint256 _cryptoId) external payable \n    {\n        \n        // doit créer une réservation avec le amount voulue\n        ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]);\n      \n        // le amount est récupéré de la réservation\n        uint256 amount = _amount ;\n\n        IERC20 paytoken;\n        if (_withERC20){\n            \n            require(_cryptoId<AllowedCrypto.length,\"Crypto id invalid\");\n            TokenInfo memory tokens = AllowedCrypto[_cryptoId];\n         \n            require(tokens.exists,\"Crypto not supported\");\n            paytoken = tokens.paytoken;\n        }\n       \n        uint256 pricePerTicket = getTicketsPrice(_ticketTypeId);\n         \n        uint256 priceToPaid = pricePerTicket*amount;\n        uint priceInDollars = 1;\n        //COMMENT FOR PROD\n        //int euroToDollarValue = 109534999;// 109478000 ;  //is 8 decimal / (1e8);\n        int euroToDollarValue = getLatestData() ;\n       \n        //Matic to usd \n        //int maticToUsd  = 73887600;// 65990700;\n        int maticToUsd = getLatestDataMaticUsd();\n\n        uint converted = uint(maticToUsd)*1e10;\n        priceInDollars = uint(euroToDollarValue) * 1e10;\n        // check paid enought in $\n        priceToPaid = ((pricePerTicket*priceInDollars)/1e18)*amount;\n        if (_withERC20){\n            // check que la balance ERC20 >=priceToPaid\n            // ERC20 is 6 decimals ==> price to paid is in Ether !!! \n            uint256 toPayInUdsc = priceToPaid/1e12;\n            // console.log(\"balance \",paytoken.balanceOf(msg.sender));\n            // console.log(\"PriceToPaid \",toPayInUdsc);\n            require(paytoken.balanceOf(msg.sender)>=toPayInUdsc,\"Not enought ERC20 to pay\");\n         }\n         else{\n            uint priceToPaidMatic = (priceToPaid/converted)*1e18;\n            // console.log(\"price to paid matic \",priceToPaidMatic);\n            // console.log(msg.value);\n            require((msg.value >= priceToPaidMatic),\"not enough money\");\n         }\n         \n        \n         TixSellLibrary.TicketType memory theTicketType =  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId);\n         // prendre le fixAmount en fonction du Ticket Template ID ? (Template premium)\n         uint256 fixAmount = theTicketType.fixAmount;\n            \n         for (uint256 i = 0; i < amount; i++) {\n            //  Send our royalties to our payment splitter  \n            uint256 fixFee = 0;\n            //Il faut prendre notre part et envoyer le reste 'a l'orga\n            // Our 0.10 € fee per ticket... à partir de 1€ \n           \n            uint256 unitPrice = ((pricePerTicket*priceInDollars)/1e18);\n            if (_withERC20){\n                // Fees \n                 if (unitPrice>=1e18){\n                  fixFee = ((fixAmount*priceInDollars)/1e18); //Prendre en euros \n                }\n            }\n            else{\n                uint priceToPaidMatic = (unitPrice/converted)*1e18;\n                unitPrice = priceToPaidMatic;\n                if (unitPrice>=1e18){\n                      uint fixFeeDollar = ((fixAmount*priceInDollars)/1e18); //Prendre en euros \n                      fixFee = ((fixFeeDollar*100)/converted)*1e16;\n                }\n            }\n            // royaltyvalue by 100 because express on 10 000 \n            uint96 provRoyalty = royaltyValue / 100;\n            uint256 amountPercent = mulDiv(provRoyalty, unitPrice, 100);\n            \n          \n           \n            // organizerPaymentSplitter et par type de ticket\n            if (_withERC20){\n                \n                 if (pricePerTicket>0){\n                    \n                    //USDC 6 decimal on divise donc tout par 1e12 \n                     uint256 totalForTixSell = (amountPercent+fixFee)/1e12;\n                     uint256 totalOrga = (unitPrice - totalForTixSell)/1e12;  \n                  \n                    paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell);\n                    paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga);\n                    \n                 }\n            }\n            else{\n                 uint256 totalForTixSell = amountPercent+fixFee;\n                 uint256 totalOrga = unitPrice - totalForTixSell;\n                //Send matic\n                if (pricePerTicket>0){\n                     payable(tixSellpaymentSplitter).transfer(totalForTixSell);\n                     payable(organizerPaymentSplitter).transfer(totalOrga);\n                }\n            } \n            mintTicket(msg.sender,_ticketTypeId,pricePerTicket);\n        }   \n       \n        // increment totalSupply for ticketPrice \n         eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount);\n        // il faut bruler la reservation\n       \n        ticketReservationContract.burnReservation(_reservationId);\n        \n    }\n    \n    function createReservation(string memory _reservationNumber, uint256 _ticketTypeId, uint256 _amount) external {\n        // doit créer une réservation avec le amount voulue\n        ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]);\n    }\n\n    //Used for WEB2 users CB payment\n    //Doit passer son ticket de réservation\n     function mintTicket(string memory _reservationId,address _to) external onlyAdmin()  \n    {\n        TixSellReservationLibrary.TicketReservation memory reservation = ticketReservationContract.checkReservation(_reservationId);\n        require(reservation.exists,\"Invalid reservation number\");\n        \n        //Verification reservation pas expire ? \n        if(reservation.expirationDate<block.timestamp){\n            //  expire\n             revert(\"Reservation expired\");\n        }\n        \n        // le amount est récupéré de la réservation\n        uint256 amount = reservation.amount ;\n        uint256 ticketTypeId = reservation.ticketTypeId; \n\n        uint256 pricePerTicket = getTicketsPrice(ticketTypeId);\n       \n         for (uint256 i = 0; i < amount; i++) {\n            mintTicket(_to,ticketTypeId,pricePerTicket);\n        }   \n        // increment totalSupply for ticketPrice \n         eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount);\n          // il faut bruler la reservation\n         ticketReservationContract.burnReservation(_reservationId);\n\n    }\n\n    function mintTicketAdmin(address _to,uint256 amount,uint256 ticketTypeId) external onlyAdmin()  \n    {\n        uint256 pricePerTicket = getTicketsPrice(ticketTypeId);\n         for (uint256 i = 0; i < amount; i++) {\n            mintTicket(_to,ticketTypeId,pricePerTicket);\n        }   \n        // increment totalSupply for ticketPrice \n         eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount);\n    }\n \n    function tokenURI(uint256 _tokenId)\n        public\n        view\n        virtual\n        override\n        returns (string memory uri)\n    {\n        require(\n           _ownerOf(_tokenId) != address(0),\n            \"ERC721Metadata: URI query for nonexistent token\"\n        );\n        //Si uri specific token on renvoi sinon on renvoi celui du ticket type \n        Ticket memory theTicket = tickets[_tokenId];\n        TixSellLibrary.TicketType memory theTicketType =  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(theTicket.ticketTypeId);\n        bool canReveal=true;\n        if (!theTicketType.revealed){\n            //check date reveal \n             if (theTicketType.revealStartDate < block.timestamp){\n                canReveal = true;\n             }\n             else{\n                canReveal = false;\n             }\n        }\n             if (bytes(ticketSpecificUri[_tokenId]).length>0){\n                return ticketSpecificUri[_tokenId];\n             }\n            else{\n                 \n                // use smart contract to get template SVG \n                TixSellLibrary.NftTicketInfo memory _nftTicketInfo =  TixSellLibrary.NftTicketInfo(\n                        theTicketType.templateId,\n                        _tokenId,\n                        theTicketType.hiddenuri,\n                        eventContract.getEvent().eventDate,\n                        theTicketType.ticketDesignInfo,\n                        theTicketType.freeDrink,\n                        theTicketType.priorityQueue,\n                        theTicketType.sellable                   \n                    );\n                 return nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal);\n                   \n            }\n        \n    }\n   \n    function getTotalTicketsSold() public view returns (uint256) {\n        return  _ticketIds;\n    }\n    \n\n    function fetchTicketsForOwner(address _fan)\n        public\n        view\n        returns (Ticket[] memory)\n    {\n        uint256 totalItemCount = _ticketIds;\n        uint256 itemCount = 0;\n        uint256 currentIndex = 0;\n\n        for (uint256 i = 0; i <totalItemCount; i++) {\n         \n            if (tickets[i].owner == _fan) {\n                itemCount += 1;\n            }\n        }\n\n        Ticket[] memory items = new Ticket[](itemCount);\n        for (uint256 i = 0; i < totalItemCount; i++) {\n            if (tickets[i].owner == _fan) {\n                uint256 currentId = i;\n                Ticket memory currentItem = tickets[currentId];\n                items[currentIndex] = currentItem;\n                currentIndex += 1;\n            }\n        }\n        return items;\n    }\n \n    \n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n          Ticket storage theTicket = tickets[tokenId];\n             //Get ticketTypeId from token \n        uint256 _ticketTypeId = ticketTypesForTicket[tokenId];\n         // check si resellable\n         TixSellLibrary.TicketType memory theTicketType =  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId);\n        if (hasRole(ADMIN_ROLE, msg.sender)==false){\n           require(theTicketType.sellable,\"not sellable\");\n        }\n      \n\n        //call the original function that you wanted.\n        super.transferFrom(from, to, tokenId);\n        theTicket.owner = payable(to);\n        \n    }\n\n//       function safeTransferFrom(\n//         address from,\n//         address to,\n//         uint256 tokenId,\n//         bytes memory data\n//     ) public virtual override {\n//         //call the original function that you wanted.\n//         super.safeTransferFrom(from, to, tokenId, data);\n//    }\n    \n    //Add a withdra function for stuck tokens \n      function withdraw() external onlyOwner {\n        uint256 balance = address(this).balance;\n        require(balance > 0, \"No ether left to withdraw\");\n        //envoi l'argent sur le spliter \n        (bool success, ) = payable(resellPaiementSplitter).call{value: balance}(\"\");\n        require(success, \"Transfer failed.\");\n    }\n\n    // function  royaltyInfo(uint256 tokenId, uint256 value) public override view returns (address receiver, uint256 royaltyAmount)\n    // {\n    //   require(\n    //        _ownerOf(tokenId) != address(0),\n    //         \"Nonexistent token\"\n    //     );\n    //     //Get ticketTypeId from token \n    //     uint256 _ticketTypeId = ticketTypesForTicket[tokenId];\n    //     TixSellLibrary.TicketType memory theTicketType =  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId);\n    //     uint256 royaltySellable = theTicketType.royaltySellable;\n    //     //royaltyAmount = mulDiv(royaltySellable,value, 100);\n        \n    //     royaltyAmount = (value * royaltySellable) / 10000;\n    //     receiver = resellPaiementSplitter;\n    //     return (receiver,royaltyAmount);\n    // }\n \n \n   function supportsInterface(bytes4 interfaceId) public view override(ERC2981,ERC721,AccessControl) returns (bool){\n        return interfaceId == _INTERFACE_ID_ERC2981 || super.supportsInterface(interfaceId);\n   }\n    \n    function getEventContract() external view returns (address){\n        return address(eventContract);\n    }\n\n     function getTicketTypesForTicket(uint256 _tokenId) external view returns (uint256){\n        return ticketTypesForTicket[_tokenId];\n    }\n    \n    function getResellPaymentSplitter() external view returns (address){\n        return resellPaiementSplitter;\n    }\n      function mulDiv (uint x, uint y, uint z)\n        public pure returns (uint) {\n        return\n            ABDKMathQuad.toUInt (\n            ABDKMathQuad.div (\n                ABDKMathQuad.mul (\n                ABDKMathQuad.fromUInt (x),\n                ABDKMathQuad.fromUInt (y)\n                ),\n                ABDKMathQuad.fromUInt (z)\n            )\n            );\n        }\n}\n"
			},
			"contracts/TokenPaymentSplitter.sol": {
				"content": "//SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\nimport \"@openzeppelin/contracts/utils/Context.sol\";\n\ncontract PaymentSplitter is Context {\n    event PayeeAdded(address account, uint256 shares);\n    event PaymentReleased(address to, uint256 amount);\n    event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount);\n    event PaymentReceived(address from, uint256 amount);\n\n    uint256 private _totalShares;\n    uint256 private _totalReleased;\n\n    mapping(address => uint256) private _shares;\n    mapping(address => uint256) private _released;\n    address[] private _payees;\n\n    mapping(IERC20 => uint256) private _erc20TotalReleased;\n    mapping(IERC20 => mapping(address => uint256)) private _erc20Released;\n\n    /**\n     * @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at\n     * the matching position in the `shares` array.\n     *\n     * All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no\n     * duplicates in `payees`.\n     */\n    constructor(address[] memory payees, uint256[] memory shares_) payable {\n        require(payees.length == shares_.length, \"PaymentSplitter: payees and shares length mismatch\");\n        require(payees.length > 0, \"PaymentSplitter: no payees\");\n\n        for (uint256 i = 0; i < payees.length; i++) {\n            _addPayee(payees[i], shares_[i]);\n        }\n    }\n\n    /**\n     * @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully\n     * reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the\n     * reliability of the events, and not the actual splitting of Ether.\n     *\n     * To learn more about this see the Solidity documentation for\n     * https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback\n     * functions].\n     */\n    receive() external payable virtual {\n        emit PaymentReceived(_msgSender(), msg.value);\n    }\n\n    /**\n     * @dev Getter for the total shares held by payees.\n     */\n    function totalShares() public view returns (uint256) {\n        return _totalShares;\n    }\n\n    /**\n     * @dev Getter for the total amount of Ether already released.\n     */\n    function totalReleased() public view returns (uint256) {\n        return _totalReleased;\n    }\n\n    /**\n     * @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20\n     * contract.\n     */\n    function totalReleased(IERC20 token) public view returns (uint256) {\n        return _erc20TotalReleased[token];\n    }\n\n    /**\n     * @dev Getter for the amount of shares held by an account.\n     */\n    function shares(address account) public view returns (uint256) {\n        return _shares[account];\n    }\n\n    /**\n     * @dev Getter for the amount of Ether already released to a payee.\n     */\n    function released(address account) public view returns (uint256) {\n        return _released[account];\n    }\n\n    /**\n     * @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an\n     * IERC20 contract.\n     */\n    function released(IERC20 token, address account) public view returns (uint256) {\n        return _erc20Released[token][account];\n    }\n\n    /**\n     * @dev Getter for the address of the payee number `index`.\n     */\n    function payee(uint256 index) public view returns (address) {\n        return _payees[index];\n    }\n\n    /**\n     * @dev Getter for the amount of payee's releasable Ether.\n     */\n    function releasable(address account) public view returns (uint256) {\n        uint256 totalReceived = address(this).balance + totalReleased();\n        return _pendingPayment(account, totalReceived, released(account));\n    }\n\n    /**\n     * @dev Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an\n     * IERC20 contract.\n     */\n    function releasable(IERC20 token, address account) public view returns (uint256) {\n        uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token);\n        return _pendingPayment(account, totalReceived, released(token, account));\n    }\n\n    /**\n     * @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the\n     * total shares and their previous withdrawals.\n     */\n    function release(address payable account) public virtual {\n        require(_shares[account] > 0, \"PaymentSplitter: account has no shares\");\n\n        uint256 payment = releasable(account);\n\n        require(payment != 0, \"PaymentSplitter: account is not due payment\");\n\n        // _totalReleased is the sum of all values in _released.\n        // If \"_totalReleased += payment\" does not overflow, then \"_released[account] += payment\" cannot overflow.\n        _totalReleased += payment;\n        unchecked {\n            _released[account] += payment;\n        }\n\n        Address.sendValue(account, payment);\n        emit PaymentReleased(account, payment);\n    }\n\n    /**\n     * @dev Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their\n     * percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20\n     * contract.\n     */\n    function release(IERC20 token, address account) public virtual {\n        require(_shares[account] > 0, \"PaymentSplitter: account has no shares\");\n\n        uint256 payment = releasable(token, account);\n\n        require(payment != 0, \"PaymentSplitter: account is not due payment\");\n\n        // _erc20TotalReleased[token] is the sum of all values in _erc20Released[token].\n        // If \"_erc20TotalReleased[token] += payment\" does not overflow, then \"_erc20Released[token][account] += payment\"\n        // cannot overflow.\n        _erc20TotalReleased[token] += payment;\n        unchecked {\n            _erc20Released[token][account] += payment;\n        }\n\n        SafeERC20.safeTransfer(token, account, payment);\n        emit ERC20PaymentReleased(token, account, payment);\n    }\n\n    /**\n     * @dev internal logic for computing the pending payment of an `account` given the token historical balances and\n     * already released amounts.\n     */\n    function _pendingPayment(\n        address account,\n        uint256 totalReceived,\n        uint256 alreadyReleased\n    ) private view returns (uint256) {\n        return (totalReceived * _shares[account]) / _totalShares - alreadyReleased;\n    }\n\n    /**\n     * @dev Add a new payee to the contract.\n     * @param account The address of the payee to add.\n     * @param shares_ The number of shares owned by the payee.\n     */\n    function _addPayee(address account, uint256 shares_) private {\n        require(account != address(0), \"PaymentSplitter: account is the zero address\");\n        require(shares_ > 0, \"PaymentSplitter: shares are 0\");\n        require(_shares[account] == 0, \"PaymentSplitter: account already has shares\");\n\n        _payees.push(account);\n        _shares[account] = shares_;\n        _totalShares = _totalShares + shares_;\n        emit PayeeAdded(account, shares_);\n    }\n}\ncontract TokenPaymentSplitter is PaymentSplitter {\n    constructor (\n        address[] memory payees,\n        uint256[] memory shares_\n    ) payable\n    PaymentSplitter(payees, shares_)\n    {}\n}\n\n "
			},
			"contracts/factories/ITicketReservationFactory.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\ninterface ITicketReservationFactory{\n    function deployTicketReservationContract(address[] memory _admins,address _eventAddress) external returns(address) ;\n}"
			},
			"contracts/interfaces/ITicketTypeContract.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\nimport \"../TixSellLibraries.sol\";\ninterface ITicketTypeContract{\n     \n    function createTicketType(uint256 _eventDate,TixSellLibrary.TicketType memory _ticketTypeData) external  returns (uint256 _ticketTypeId) ;\n    function deleteTicketType(uint256 _ticketTypeId) external  ;\n    function getTicketTypeInfo(uint256 _ticketTypeId) external view returns (TixSellLibrary.TicketType memory);\n    function fetchTicketsType() external view  returns (TixSellLibrary.TicketType[] memory);\n    \n}"
			},
			"contracts/interfaces/ITicketReservationContract.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20; \n\nimport \"../TixSellReservationLibrary.sol\";\ninterface ITicketReservationContract{\n   function createReservationNumber(string memory _reservationNumber,address _owner, uint256 _ticketTypeId, uint256 _amount,uint256 _existingBalance) external ;\n   function cancelReservation(string memory _reservationNumber) external ;\n   function checkReservation(string memory _reservationNumber) external   view returns(TixSellReservationLibrary.TicketReservation memory) ;\n    function burnReservation(string memory _reservationNumber)  external ;\n}"
			},
			"contracts/interfaces/ITixSellNftTemplate.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n \nimport \"../TixSellLibraries.sol\";\ninterface ITixSellNftTemplateContract{\n      \n    function getURI(address _ticketAddress, TixSellLibrary.NftTicketInfo memory nftTicketInfo,bool revealed)\n        external \n        view\n        returns (string memory finalSVG);\n   \n    \n}"
			},
			"contracts/interfaces/IEventContract.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n \nimport \"../TixSellEventLibrary.sol\";\ninterface IEventContract{\n     \n    function setTicketContract(address _ticketContract) external ;\n    function getEvent() external view returns (TixSellEventLibrary.Event memory);\n    function getTicketTypeContract() external view returns(address);\n    function getTicketTypesNbMinted(uint256 _ticketTypeId) external view returns (uint256);\n    function getListOfTicketForTicketType(uint256 _ticketTypeId) external view returns (uint256);\n    function addTicketToListOfTicketType(uint256 _ticketTypeId,uint256 _tokenId) external ;\n    function addTicketTypesNbTicketMinted(uint256 _ticketTypeId,uint256 amount) external;\n\n}"
			},
			"@openzeppelin/contracts/utils/Base64.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Base64.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides a set of functions to operate with Base64 strings.\n */\nlibrary Base64 {\n    /**\n     * @dev Base64 Encoding/Decoding Table\n     */\n    string internal constant _TABLE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n    /**\n     * @dev Converts a `bytes` to its Bytes64 `string` representation.\n     */\n    function encode(bytes memory data) internal pure returns (string memory) {\n        /**\n         * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n         * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\n         */\n        if (data.length == 0) return \"\";\n\n        // Loads the table into memory\n        string memory table = _TABLE;\n\n        // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter\n        // and split into 4 numbers of 6 bits.\n        // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up\n        // - `data.length + 2`  -> Round up\n        // - `/ 3`              -> Number of 3-bytes chunks\n        // - `4 *`              -> 4 characters for each chunk\n        string memory result = new string(4 * ((data.length + 2) / 3));\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            // Prepare the lookup table (skip the first \"length\" byte)\n            let tablePtr := add(table, 1)\n\n            // Prepare result pointer, jump over length\n            let resultPtr := add(result, 32)\n\n            // Run over the input, 3 bytes at a time\n            for {\n                let dataPtr := data\n                let endPtr := add(data, mload(data))\n            } lt(dataPtr, endPtr) {\n\n            } {\n                // Advance 3 bytes\n                dataPtr := add(dataPtr, 3)\n                let input := mload(dataPtr)\n\n                // To write each character, shift the 3 bytes (18 bits) chunk\n                // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\n                // and apply logical AND with 0x3F which is the number of\n                // the previous character in the ASCII table prior to the Base64 Table\n                // The result is then added to the table to get the character to write,\n                // and finally write it in the result pointer but with a left shift\n                // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n            }\n\n            // When data `bytes` is not exactly 3 bytes long\n            // it is padded with `=` characters at the end\n            switch mod(mload(data), 3)\n            case 1 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n                mstore8(sub(resultPtr, 2), 0x3d)\n            }\n            case 2 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n            }\n        }\n\n        return result;\n    }\n}\n"
			},
			"abdk-libraries-solidity/ABDKMathQuad.sol": {
				"content": "// SPDX-License-Identifier: BSD-4-Clause\n/*\n * ABDK Math Quad Smart Contract Library.  Copyright © 2019 by ABDK Consulting.\n * Author: Mikhail Vladimirov <mikhail.vladimirov@gmail.com>\n */\npragma solidity ^0.8.0;\n\n/**\n * Smart contract library of mathematical functions operating with IEEE 754\n * quadruple-precision binary floating-point numbers (quadruple precision\n * numbers).  As long as quadruple precision numbers are 16-bytes long, they are\n * represented by bytes16 type.\n */\nlibrary ABDKMathQuad {\n  /*\n   * 0.\n   */\n  bytes16 private constant POSITIVE_ZERO = 0x00000000000000000000000000000000;\n\n  /*\n   * -0.\n   */\n  bytes16 private constant NEGATIVE_ZERO = 0x80000000000000000000000000000000;\n\n  /*\n   * +Infinity.\n   */\n  bytes16 private constant POSITIVE_INFINITY = 0x7FFF0000000000000000000000000000;\n\n  /*\n   * -Infinity.\n   */\n  bytes16 private constant NEGATIVE_INFINITY = 0xFFFF0000000000000000000000000000;\n\n  /*\n   * Canonical NaN value.\n   */\n  bytes16 private constant NaN = 0x7FFF8000000000000000000000000000;\n\n  /**\n   * Convert signed 256-bit integer number into quadruple precision number.\n   *\n   * @param x signed 256-bit integer number\n   * @return quadruple precision number\n   */\n  function fromInt (int256 x) internal pure returns (bytes16) {\n    unchecked {\n      if (x == 0) return bytes16 (0);\n      else {\n        // We rely on overflow behavior here\n        uint256 result = uint256 (x > 0 ? x : -x);\n\n        uint256 msb = mostSignificantBit (result);\n        if (msb < 112) result <<= 112 - msb;\n        else if (msb > 112) result >>= msb - 112;\n\n        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;\n        if (x < 0) result |= 0x80000000000000000000000000000000;\n\n        return bytes16 (uint128 (result));\n      }\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into signed 256-bit integer number\n   * rounding towards zero.  Revert on overflow.\n   *\n   * @param x quadruple precision number\n   * @return signed 256-bit integer number\n   */\n  function toInt (bytes16 x) internal pure returns (int256) {\n    unchecked {\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n\n      require (exponent <= 16638); // Overflow\n      if (exponent < 16383) return 0; // Underflow\n\n      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |\n        0x10000000000000000000000000000;\n\n      if (exponent < 16495) result >>= 16495 - exponent;\n      else if (exponent > 16495) result <<= exponent - 16495;\n\n      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative\n        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);\n        return -int256 (result); // We rely on overflow behavior here\n      } else {\n        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n        return int256 (result);\n      }\n    }\n  }\n\n  /**\n   * Convert unsigned 256-bit integer number into quadruple precision number.\n   *\n   * @param x unsigned 256-bit integer number\n   * @return quadruple precision number\n   */\n  function fromUInt (uint256 x) internal pure returns (bytes16) {\n    unchecked {\n      if (x == 0) return bytes16 (0);\n      else {\n        uint256 result = x;\n\n        uint256 msb = mostSignificantBit (result);\n        if (msb < 112) result <<= 112 - msb;\n        else if (msb > 112) result >>= msb - 112;\n\n        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;\n\n        return bytes16 (uint128 (result));\n      }\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into unsigned 256-bit integer number\n   * rounding towards zero.  Revert on underflow.  Note, that negative floating\n   * point numbers in range (-1.0 .. 0.0) may be converted to unsigned integer\n   * without error, because they are rounded to zero.\n   *\n   * @param x quadruple precision number\n   * @return unsigned 256-bit integer number\n   */\n  function toUInt (bytes16 x) internal pure returns (uint256) {\n    unchecked {\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n\n      if (exponent < 16383) return 0; // Underflow\n\n      require (uint128 (x) < 0x80000000000000000000000000000000); // Negative\n\n      require (exponent <= 16638); // Overflow\n      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |\n        0x10000000000000000000000000000;\n\n      if (exponent < 16495) result >>= 16495 - exponent;\n      else if (exponent > 16495) result <<= exponent - 16495;\n\n      return result;\n    }\n  }\n\n  /**\n   * Convert signed 128.128 bit fixed point number into quadruple precision\n   * number.\n   *\n   * @param x signed 128.128 bit fixed point number\n   * @return quadruple precision number\n   */\n  function from128x128 (int256 x) internal pure returns (bytes16) {\n    unchecked {\n      if (x == 0) return bytes16 (0);\n      else {\n        // We rely on overflow behavior here\n        uint256 result = uint256 (x > 0 ? x : -x);\n\n        uint256 msb = mostSignificantBit (result);\n        if (msb < 112) result <<= 112 - msb;\n        else if (msb > 112) result >>= msb - 112;\n\n        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16255 + msb << 112;\n        if (x < 0) result |= 0x80000000000000000000000000000000;\n\n        return bytes16 (uint128 (result));\n      }\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into signed 128.128 bit fixed point\n   * number.  Revert on overflow.\n   *\n   * @param x quadruple precision number\n   * @return signed 128.128 bit fixed point number\n   */\n  function to128x128 (bytes16 x) internal pure returns (int256) {\n    unchecked {\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n\n      require (exponent <= 16510); // Overflow\n      if (exponent < 16255) return 0; // Underflow\n\n      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |\n        0x10000000000000000000000000000;\n\n      if (exponent < 16367) result >>= 16367 - exponent;\n      else if (exponent > 16367) result <<= exponent - 16367;\n\n      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative\n        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);\n        return -int256 (result); // We rely on overflow behavior here\n      } else {\n        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n        return int256 (result);\n      }\n    }\n  }\n\n  /**\n   * Convert signed 64.64 bit fixed point number into quadruple precision\n   * number.\n   *\n   * @param x signed 64.64 bit fixed point number\n   * @return quadruple precision number\n   */\n  function from64x64 (int128 x) internal pure returns (bytes16) {\n    unchecked {\n      if (x == 0) return bytes16 (0);\n      else {\n        // We rely on overflow behavior here\n        uint256 result = uint128 (x > 0 ? x : -x);\n\n        uint256 msb = mostSignificantBit (result);\n        if (msb < 112) result <<= 112 - msb;\n        else if (msb > 112) result >>= msb - 112;\n\n        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16319 + msb << 112;\n        if (x < 0) result |= 0x80000000000000000000000000000000;\n\n        return bytes16 (uint128 (result));\n      }\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into signed 64.64 bit fixed point\n   * number.  Revert on overflow.\n   *\n   * @param x quadruple precision number\n   * @return signed 64.64 bit fixed point number\n   */\n  function to64x64 (bytes16 x) internal pure returns (int128) {\n    unchecked {\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n\n      require (exponent <= 16446); // Overflow\n      if (exponent < 16319) return 0; // Underflow\n\n      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |\n        0x10000000000000000000000000000;\n\n      if (exponent < 16431) result >>= 16431 - exponent;\n      else if (exponent > 16431) result <<= exponent - 16431;\n\n      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative\n        require (result <= 0x80000000000000000000000000000000);\n        return -int128 (int256 (result)); // We rely on overflow behavior here\n      } else {\n        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n        return int128 (int256 (result));\n      }\n    }\n  }\n\n  /**\n   * Convert octuple precision number into quadruple precision number.\n   *\n   * @param x octuple precision number\n   * @return quadruple precision number\n   */\n  function fromOctuple (bytes32 x) internal pure returns (bytes16) {\n    unchecked {\n      bool negative = x & 0x8000000000000000000000000000000000000000000000000000000000000000 > 0;\n\n      uint256 exponent = uint256 (x) >> 236 & 0x7FFFF;\n      uint256 significand = uint256 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      if (exponent == 0x7FFFF) {\n        if (significand > 0) return NaN;\n        else return negative ? NEGATIVE_INFINITY : POSITIVE_INFINITY;\n      }\n\n      if (exponent > 278526)\n        return negative ? NEGATIVE_INFINITY : POSITIVE_INFINITY;\n      else if (exponent < 245649)\n        return negative ? NEGATIVE_ZERO : POSITIVE_ZERO;\n      else if (exponent < 245761) {\n        significand = (significand | 0x100000000000000000000000000000000000000000000000000000000000) >> 245885 - exponent;\n        exponent = 0;\n      } else {\n        significand >>= 124;\n        exponent -= 245760;\n      }\n\n      uint128 result = uint128 (significand | exponent << 112);\n      if (negative) result |= 0x80000000000000000000000000000000;\n\n      return bytes16 (result);\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into octuple precision number.\n   *\n   * @param x quadruple precision number\n   * @return octuple precision number\n   */\n  function toOctuple (bytes16 x) internal pure returns (bytes32) {\n    unchecked {\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n\n      uint256 result = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      if (exponent == 0x7FFF) exponent = 0x7FFFF; // Infinity or NaN\n      else if (exponent == 0) {\n        if (result > 0) {\n          uint256 msb = mostSignificantBit (result);\n          result = result << 236 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          exponent = 245649 + msb;\n        }\n      } else {\n        result <<= 124;\n        exponent += 245760;\n      }\n\n      result |= exponent << 236;\n      if (uint128 (x) >= 0x80000000000000000000000000000000)\n        result |= 0x8000000000000000000000000000000000000000000000000000000000000000;\n\n      return bytes32 (result);\n    }\n  }\n\n  /**\n   * Convert double precision number into quadruple precision number.\n   *\n   * @param x double precision number\n   * @return quadruple precision number\n   */\n  function fromDouble (bytes8 x) internal pure returns (bytes16) {\n    unchecked {\n      uint256 exponent = uint64 (x) >> 52 & 0x7FF;\n\n      uint256 result = uint64 (x) & 0xFFFFFFFFFFFFF;\n\n      if (exponent == 0x7FF) exponent = 0x7FFF; // Infinity or NaN\n      else if (exponent == 0) {\n        if (result > 0) {\n          uint256 msb = mostSignificantBit (result);\n          result = result << 112 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          exponent = 15309 + msb;\n        }\n      } else {\n        result <<= 60;\n        exponent += 15360;\n      }\n\n      result |= exponent << 112;\n      if (x & 0x8000000000000000 > 0)\n        result |= 0x80000000000000000000000000000000;\n\n      return bytes16 (uint128 (result));\n    }\n  }\n\n  /**\n   * Convert quadruple precision number into double precision number.\n   *\n   * @param x quadruple precision number\n   * @return double precision number\n   */\n  function toDouble (bytes16 x) internal pure returns (bytes8) {\n    unchecked {\n      bool negative = uint128 (x) >= 0x80000000000000000000000000000000;\n\n      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;\n      uint256 significand = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      if (exponent == 0x7FFF) {\n        if (significand > 0) return 0x7FF8000000000000; // NaN\n        else return negative ?\n            bytes8 (0xFFF0000000000000) : // -Infinity\n            bytes8 (0x7FF0000000000000); // Infinity\n      }\n\n      if (exponent > 17406)\n        return negative ?\n            bytes8 (0xFFF0000000000000) : // -Infinity\n            bytes8 (0x7FF0000000000000); // Infinity\n      else if (exponent < 15309)\n        return negative ?\n            bytes8 (0x8000000000000000) : // -0\n            bytes8 (0x0000000000000000); // 0\n      else if (exponent < 15361) {\n        significand = (significand | 0x10000000000000000000000000000) >> 15421 - exponent;\n        exponent = 0;\n      } else {\n        significand >>= 60;\n        exponent -= 15360;\n      }\n\n      uint64 result = uint64 (significand | exponent << 52);\n      if (negative) result |= 0x8000000000000000;\n\n      return bytes8 (result);\n    }\n  }\n\n  /**\n   * Test whether given quadruple precision number is NaN.\n   *\n   * @param x quadruple precision number\n   * @return true if x is NaN, false otherwise\n   */\n  function isNaN (bytes16 x) internal pure returns (bool) {\n    unchecked {\n      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >\n        0x7FFF0000000000000000000000000000;\n    }\n  }\n\n  /**\n   * Test whether given quadruple precision number is positive or negative\n   * infinity.\n   *\n   * @param x quadruple precision number\n   * @return true if x is positive or negative infinity, false otherwise\n   */\n  function isInfinity (bytes16 x) internal pure returns (bool) {\n    unchecked {\n      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ==\n        0x7FFF0000000000000000000000000000;\n    }\n  }\n\n  /**\n   * Calculate sign of x, i.e. -1 if x is negative, 0 if x if zero, and 1 if x\n   * is positive.  Note that sign (-0) is zero.  Revert if x is NaN. \n   *\n   * @param x quadruple precision number\n   * @return sign of x\n   */\n  function sign (bytes16 x) internal pure returns (int8) {\n    unchecked {\n      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN\n\n      if (absoluteX == 0) return 0;\n      else if (uint128 (x) >= 0x80000000000000000000000000000000) return -1;\n      else return 1;\n    }\n  }\n\n  /**\n   * Calculate sign (x - y).  Revert if either argument is NaN, or both\n   * arguments are infinities of the same sign. \n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return sign (x - y)\n   */\n  function cmp (bytes16 x, bytes16 y) internal pure returns (int8) {\n    unchecked {\n      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN\n\n      uint128 absoluteY = uint128 (y) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      require (absoluteY <= 0x7FFF0000000000000000000000000000); // Not NaN\n\n      // Not infinities of the same sign\n      require (x != y || absoluteX < 0x7FFF0000000000000000000000000000);\n\n      if (x == y) return 0;\n      else {\n        bool negativeX = uint128 (x) >= 0x80000000000000000000000000000000;\n        bool negativeY = uint128 (y) >= 0x80000000000000000000000000000000;\n\n        if (negativeX) {\n          if (negativeY) return absoluteX > absoluteY ? -1 : int8 (1);\n          else return -1; \n        } else {\n          if (negativeY) return 1;\n          else return absoluteX > absoluteY ? int8 (1) : -1;\n        }\n      }\n    }\n  }\n\n  /**\n   * Test whether x equals y.  NaN, infinity, and -infinity are not equal to\n   * anything. \n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return true if x equals to y, false otherwise\n   */\n  function eq (bytes16 x, bytes16 y) internal pure returns (bool) {\n    unchecked {\n      if (x == y) {\n        return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF <\n          0x7FFF0000000000000000000000000000;\n      } else return false;\n    }\n  }\n\n  /**\n   * Calculate x + y.  Special values behave in the following way:\n   *\n   * NaN + x = NaN for any x.\n   * Infinity + x = Infinity for any finite x.\n   * -Infinity + x = -Infinity for any finite x.\n   * Infinity + Infinity = Infinity.\n   * -Infinity + -Infinity = -Infinity.\n   * Infinity + -Infinity = -Infinity + Infinity = NaN.\n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return quadruple precision number\n   */\n  function add (bytes16 x, bytes16 y) internal pure returns (bytes16) {\n    unchecked {\n      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;\n\n      if (xExponent == 0x7FFF) {\n        if (yExponent == 0x7FFF) { \n          if (x == y) return x;\n          else return NaN;\n        } else return x; \n      } else if (yExponent == 0x7FFF) return y;\n      else {\n        bool xSign = uint128 (x) >= 0x80000000000000000000000000000000;\n        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (xExponent == 0) xExponent = 1;\n        else xSignifier |= 0x10000000000000000000000000000;\n\n        bool ySign = uint128 (y) >= 0x80000000000000000000000000000000;\n        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (yExponent == 0) yExponent = 1;\n        else ySignifier |= 0x10000000000000000000000000000;\n\n        if (xSignifier == 0) return y == NEGATIVE_ZERO ? POSITIVE_ZERO : y;\n        else if (ySignifier == 0) return x == NEGATIVE_ZERO ? POSITIVE_ZERO : x;\n        else {\n          int256 delta = int256 (xExponent) - int256 (yExponent);\n  \n          if (xSign == ySign) {\n            if (delta > 112) return x;\n            else if (delta > 0) ySignifier >>= uint256 (delta);\n            else if (delta < -112) return y;\n            else if (delta < 0) {\n              xSignifier >>= uint256 (-delta);\n              xExponent = yExponent;\n            }\n  \n            xSignifier += ySignifier;\n  \n            if (xSignifier >= 0x20000000000000000000000000000) {\n              xSignifier >>= 1;\n              xExponent += 1;\n            }\n  \n            if (xExponent == 0x7FFF)\n              return xSign ? NEGATIVE_INFINITY : POSITIVE_INFINITY;\n            else {\n              if (xSignifier < 0x10000000000000000000000000000) xExponent = 0;\n              else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n  \n              return bytes16 (uint128 (\n                  (xSign ? 0x80000000000000000000000000000000 : 0) |\n                  (xExponent << 112) |\n                  xSignifier)); \n            }\n          } else {\n            if (delta > 0) {\n              xSignifier <<= 1;\n              xExponent -= 1;\n            } else if (delta < 0) {\n              ySignifier <<= 1;\n              xExponent = yExponent - 1;\n            }\n\n            if (delta > 112) ySignifier = 1;\n            else if (delta > 1) ySignifier = (ySignifier - 1 >> uint256 (delta - 1)) + 1;\n            else if (delta < -112) xSignifier = 1;\n            else if (delta < -1) xSignifier = (xSignifier - 1 >> uint256 (-delta - 1)) + 1;\n\n            if (xSignifier >= ySignifier) xSignifier -= ySignifier;\n            else {\n              xSignifier = ySignifier - xSignifier;\n              xSign = ySign;\n            }\n\n            if (xSignifier == 0)\n              return POSITIVE_ZERO;\n\n            uint256 msb = mostSignificantBit (xSignifier);\n\n            if (msb == 113) {\n              xSignifier = xSignifier >> 1 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n              xExponent += 1;\n            } else if (msb < 112) {\n              uint256 shift = 112 - msb;\n              if (xExponent > shift) {\n                xSignifier = xSignifier << shift & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n                xExponent -= shift;\n              } else {\n                xSignifier <<= xExponent - 1;\n                xExponent = 0;\n              }\n            } else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n            if (xExponent == 0x7FFF)\n              return xSign ? NEGATIVE_INFINITY : POSITIVE_INFINITY;\n            else return bytes16 (uint128 (\n                (xSign ? 0x80000000000000000000000000000000 : 0) |\n                (xExponent << 112) |\n                xSignifier));\n          }\n        }\n      }\n    }\n  }\n\n  /**\n   * Calculate x - y.  Special values behave in the following way:\n   *\n   * NaN - x = NaN for any x.\n   * Infinity - x = Infinity for any finite x.\n   * -Infinity - x = -Infinity for any finite x.\n   * Infinity - -Infinity = Infinity.\n   * -Infinity - Infinity = -Infinity.\n   * Infinity - Infinity = -Infinity - -Infinity = NaN.\n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return quadruple precision number\n   */\n  function sub (bytes16 x, bytes16 y) internal pure returns (bytes16) {\n    unchecked {\n      return add (x, y ^ 0x80000000000000000000000000000000);\n    }\n  }\n\n  /**\n   * Calculate x * y.  Special values behave in the following way:\n   *\n   * NaN * x = NaN for any x.\n   * Infinity * x = Infinity for any finite positive x.\n   * Infinity * x = -Infinity for any finite negative x.\n   * -Infinity * x = -Infinity for any finite positive x.\n   * -Infinity * x = Infinity for any finite negative x.\n   * Infinity * 0 = NaN.\n   * -Infinity * 0 = NaN.\n   * Infinity * Infinity = Infinity.\n   * Infinity * -Infinity = -Infinity.\n   * -Infinity * Infinity = -Infinity.\n   * -Infinity * -Infinity = Infinity.\n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return quadruple precision number\n   */\n  function mul (bytes16 x, bytes16 y) internal pure returns (bytes16) {\n    unchecked {\n      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;\n\n      if (xExponent == 0x7FFF) {\n        if (yExponent == 0x7FFF) {\n          if (x == y) return x ^ y & 0x80000000000000000000000000000000;\n          else if (x ^ y == 0x80000000000000000000000000000000) return x | y;\n          else return NaN;\n        } else {\n          if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;\n          else return x ^ y & 0x80000000000000000000000000000000;\n        }\n      } else if (yExponent == 0x7FFF) {\n          if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;\n          else return y ^ x & 0x80000000000000000000000000000000;\n      } else {\n        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (xExponent == 0) xExponent = 1;\n        else xSignifier |= 0x10000000000000000000000000000;\n\n        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (yExponent == 0) yExponent = 1;\n        else ySignifier |= 0x10000000000000000000000000000;\n\n        xSignifier *= ySignifier;\n        if (xSignifier == 0)\n          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?\n              NEGATIVE_ZERO : POSITIVE_ZERO;\n\n        xExponent += yExponent;\n\n        uint256 msb =\n          xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :\n          xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 ? 224 :\n          mostSignificantBit (xSignifier);\n\n        if (xExponent + msb < 16496) { // Underflow\n          xExponent = 0;\n          xSignifier = 0;\n        } else if (xExponent + msb < 16608) { // Subnormal\n          if (xExponent < 16496)\n            xSignifier >>= 16496 - xExponent;\n          else if (xExponent > 16496)\n            xSignifier <<= xExponent - 16496;\n          xExponent = 0;\n        } else if (xExponent + msb > 49373) {\n          xExponent = 0x7FFF;\n          xSignifier = 0;\n        } else {\n          if (msb > 112)\n            xSignifier >>= msb - 112;\n          else if (msb < 112)\n            xSignifier <<= 112 - msb;\n\n          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n          xExponent = xExponent + msb - 16607;\n        }\n\n        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |\n            xExponent << 112 | xSignifier));\n      }\n    }\n  }\n\n  /**\n   * Calculate x / y.  Special values behave in the following way:\n   *\n   * NaN / x = NaN for any x.\n   * x / NaN = NaN for any x.\n   * Infinity / x = Infinity for any finite non-negative x.\n   * Infinity / x = -Infinity for any finite negative x including -0.\n   * -Infinity / x = -Infinity for any finite non-negative x.\n   * -Infinity / x = Infinity for any finite negative x including -0.\n   * x / Infinity = 0 for any finite non-negative x.\n   * x / -Infinity = -0 for any finite non-negative x.\n   * x / Infinity = -0 for any finite non-negative x including -0.\n   * x / -Infinity = 0 for any finite non-negative x including -0.\n   * \n   * Infinity / Infinity = NaN.\n   * Infinity / -Infinity = -NaN.\n   * -Infinity / Infinity = -NaN.\n   * -Infinity / -Infinity = NaN.\n   *\n   * Division by zero behaves in the following way:\n   *\n   * x / 0 = Infinity for any finite positive x.\n   * x / -0 = -Infinity for any finite positive x.\n   * x / 0 = -Infinity for any finite negative x.\n   * x / -0 = Infinity for any finite negative x.\n   * 0 / 0 = NaN.\n   * 0 / -0 = NaN.\n   * -0 / 0 = NaN.\n   * -0 / -0 = NaN.\n   *\n   * @param x quadruple precision number\n   * @param y quadruple precision number\n   * @return quadruple precision number\n   */\n  function div (bytes16 x, bytes16 y) internal pure returns (bytes16) {\n    unchecked {\n      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;\n\n      if (xExponent == 0x7FFF) {\n        if (yExponent == 0x7FFF) return NaN;\n        else return x ^ y & 0x80000000000000000000000000000000;\n      } else if (yExponent == 0x7FFF) {\n        if (y & 0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF != 0) return NaN;\n        else return POSITIVE_ZERO | (x ^ y) & 0x80000000000000000000000000000000;\n      } else if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) {\n        if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;\n        else return POSITIVE_INFINITY | (x ^ y) & 0x80000000000000000000000000000000;\n      } else {\n        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (yExponent == 0) yExponent = 1;\n        else ySignifier |= 0x10000000000000000000000000000;\n\n        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (xExponent == 0) {\n          if (xSignifier != 0) {\n            uint shift = 226 - mostSignificantBit (xSignifier);\n\n            xSignifier <<= shift;\n\n            xExponent = 1;\n            yExponent += shift - 114;\n          }\n        }\n        else {\n          xSignifier = (xSignifier | 0x10000000000000000000000000000) << 114;\n        }\n\n        xSignifier = xSignifier / ySignifier;\n        if (xSignifier == 0)\n          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?\n              NEGATIVE_ZERO : POSITIVE_ZERO;\n\n        assert (xSignifier >= 0x1000000000000000000000000000);\n\n        uint256 msb =\n          xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :\n          xSignifier >= 0x40000000000000000000000000000 ? 114 :\n          xSignifier >= 0x20000000000000000000000000000 ? 113 : 112;\n\n        if (xExponent + msb > yExponent + 16497) { // Overflow\n          xExponent = 0x7FFF;\n          xSignifier = 0;\n        } else if (xExponent + msb + 16380  < yExponent) { // Underflow\n          xExponent = 0;\n          xSignifier = 0;\n        } else if (xExponent + msb + 16268  < yExponent) { // Subnormal\n          if (xExponent + 16380 > yExponent)\n            xSignifier <<= xExponent + 16380 - yExponent;\n          else if (xExponent + 16380 < yExponent)\n            xSignifier >>= yExponent - xExponent - 16380;\n\n          xExponent = 0;\n        } else { // Normal\n          if (msb > 112)\n            xSignifier >>= msb - 112;\n\n          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n          xExponent = xExponent + msb + 16269 - yExponent;\n        }\n\n        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |\n            xExponent << 112 | xSignifier));\n      }\n    }\n  }\n\n  /**\n   * Calculate -x.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function neg (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      return x ^ 0x80000000000000000000000000000000;\n    }\n  }\n\n  /**\n   * Calculate |x|.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function abs (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      return x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n    }\n  }\n\n  /**\n   * Calculate square root of x.  Return NaN on negative x excluding -0.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function sqrt (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      if (uint128 (x) >  0x80000000000000000000000000000000) return NaN;\n      else {\n        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n        if (xExponent == 0x7FFF) return x;\n        else {\n          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          if (xExponent == 0) xExponent = 1;\n          else xSignifier |= 0x10000000000000000000000000000;\n\n          if (xSignifier == 0) return POSITIVE_ZERO;\n\n          bool oddExponent = xExponent & 0x1 == 0;\n          xExponent = xExponent + 16383 >> 1;\n\n          if (oddExponent) {\n            if (xSignifier >= 0x10000000000000000000000000000)\n              xSignifier <<= 113;\n            else {\n              uint256 msb = mostSignificantBit (xSignifier);\n              uint256 shift = (226 - msb) & 0xFE;\n              xSignifier <<= shift;\n              xExponent -= shift - 112 >> 1;\n            }\n          } else {\n            if (xSignifier >= 0x10000000000000000000000000000)\n              xSignifier <<= 112;\n            else {\n              uint256 msb = mostSignificantBit (xSignifier);\n              uint256 shift = (225 - msb) & 0xFE;\n              xSignifier <<= shift;\n              xExponent -= shift - 112 >> 1;\n            }\n          }\n\n          uint256 r = 0x10000000000000000000000000000;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1;\n          r = (r + xSignifier / r) >> 1; // Seven iterations should be enough\n          uint256 r1 = xSignifier / r;\n          if (r1 < r) r = r1;\n\n          return bytes16 (uint128 (xExponent << 112 | r & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));\n        }\n      }\n    }\n  }\n\n  /**\n   * Calculate binary logarithm of x.  Return NaN on negative x excluding -0.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function log_2 (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      if (uint128 (x) > 0x80000000000000000000000000000000) return NaN;\n      else if (x == 0x3FFF0000000000000000000000000000) return POSITIVE_ZERO; \n      else {\n        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n        if (xExponent == 0x7FFF) return x;\n        else {\n          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          if (xExponent == 0) xExponent = 1;\n          else xSignifier |= 0x10000000000000000000000000000;\n\n          if (xSignifier == 0) return NEGATIVE_INFINITY;\n\n          bool resultNegative;\n          uint256 resultExponent = 16495;\n          uint256 resultSignifier;\n\n          if (xExponent >= 0x3FFF) {\n            resultNegative = false;\n            resultSignifier = xExponent - 0x3FFF;\n            xSignifier <<= 15;\n          } else {\n            resultNegative = true;\n            if (xSignifier >= 0x10000000000000000000000000000) {\n              resultSignifier = 0x3FFE - xExponent;\n              xSignifier <<= 15;\n            } else {\n              uint256 msb = mostSignificantBit (xSignifier);\n              resultSignifier = 16493 - msb;\n              xSignifier <<= 127 - msb;\n            }\n          }\n\n          if (xSignifier == 0x80000000000000000000000000000000) {\n            if (resultNegative) resultSignifier += 1;\n            uint256 shift = 112 - mostSignificantBit (resultSignifier);\n            resultSignifier <<= shift;\n            resultExponent -= shift;\n          } else {\n            uint256 bb = resultNegative ? 1 : 0;\n            while (resultSignifier < 0x10000000000000000000000000000) {\n              resultSignifier <<= 1;\n              resultExponent -= 1;\n  \n              xSignifier *= xSignifier;\n              uint256 b = xSignifier >> 255;\n              resultSignifier += b ^ bb;\n              xSignifier >>= 127 + b;\n            }\n          }\n\n          return bytes16 (uint128 ((resultNegative ? 0x80000000000000000000000000000000 : 0) |\n              resultExponent << 112 | resultSignifier & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));\n        }\n      }\n    }\n  }\n\n  /**\n   * Calculate natural logarithm of x.  Return NaN on negative x excluding -0.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function ln (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      return mul (log_2 (x), 0x3FFE62E42FEFA39EF35793C7673007E5);\n    }\n  }\n\n  /**\n   * Calculate 2^x.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function pow_2 (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      bool xNegative = uint128 (x) > 0x80000000000000000000000000000000;\n      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;\n      uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n      if (xExponent == 0x7FFF && xSignifier != 0) return NaN;\n      else if (xExponent > 16397)\n        return xNegative ? POSITIVE_ZERO : POSITIVE_INFINITY;\n      else if (xExponent < 16255)\n        return 0x3FFF0000000000000000000000000000;\n      else {\n        if (xExponent == 0) xExponent = 1;\n        else xSignifier |= 0x10000000000000000000000000000;\n\n        if (xExponent > 16367)\n          xSignifier <<= xExponent - 16367;\n        else if (xExponent < 16367)\n          xSignifier >>= 16367 - xExponent;\n\n        if (xNegative && xSignifier > 0x406E00000000000000000000000000000000)\n          return POSITIVE_ZERO;\n\n        if (!xNegative && xSignifier > 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n          return POSITIVE_INFINITY;\n\n        uint256 resultExponent = xSignifier >> 128;\n        xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n        if (xNegative && xSignifier != 0) {\n          xSignifier = ~xSignifier;\n          resultExponent += 1;\n        }\n\n        uint256 resultSignifier = 0x80000000000000000000000000000000;\n        if (xSignifier & 0x80000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;\n        if (xSignifier & 0x40000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;\n        if (xSignifier & 0x20000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;\n        if (xSignifier & 0x10000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10B5586CF9890F6298B92B71842A98363 >> 128;\n        if (xSignifier & 0x8000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;\n        if (xSignifier & 0x4000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;\n        if (xSignifier & 0x2000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;\n        if (xSignifier & 0x1000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;\n        if (xSignifier & 0x800000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;\n        if (xSignifier & 0x400000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;\n        if (xSignifier & 0x200000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;\n        if (xSignifier & 0x100000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;\n        if (xSignifier & 0x80000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;\n        if (xSignifier & 0x40000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;\n        if (xSignifier & 0x20000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000162E525EE054754457D5995292026 >> 128;\n        if (xSignifier & 0x10000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000B17255775C040618BF4A4ADE83FC >> 128;\n        if (xSignifier & 0x8000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;\n        if (xSignifier & 0x4000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;\n        if (xSignifier & 0x2000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000162E43F4F831060E02D839A9D16D >> 128;\n        if (xSignifier & 0x1000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000B1721BCFC99D9F890EA06911763 >> 128;\n        if (xSignifier & 0x800000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;\n        if (xSignifier & 0x400000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;\n        if (xSignifier & 0x200000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000162E430E5A18F6119E3C02282A5 >> 128;\n        if (xSignifier & 0x100000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;\n        if (xSignifier & 0x80000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;\n        if (xSignifier & 0x40000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000002C5C8601CC6B9E94213C72737A >> 128;\n        if (xSignifier & 0x20000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;\n        if (xSignifier & 0x10000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;\n        if (xSignifier & 0x8000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;\n        if (xSignifier & 0x4000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;\n        if (xSignifier & 0x2000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;\n        if (xSignifier & 0x1000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000B17217F80F4EF5AADDA45554 >> 128;\n        if (xSignifier & 0x800000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;\n        if (xSignifier & 0x400000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;\n        if (xSignifier & 0x200000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000162E42FEFB2FED257559BDAA >> 128;\n        if (xSignifier & 0x100000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;\n        if (xSignifier & 0x80000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;\n        if (xSignifier & 0x40000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;\n        if (xSignifier & 0x20000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000162E42FEFA494F1478FDE05 >> 128;\n        if (xSignifier & 0x10000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000B17217F7D20CF927C8E94C >> 128;\n        if (xSignifier & 0x8000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;\n        if (xSignifier & 0x4000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000002C5C85FDF477B662B26945 >> 128;\n        if (xSignifier & 0x2000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000162E42FEFA3AE53369388C >> 128;\n        if (xSignifier & 0x1000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000B17217F7D1D351A389D40 >> 128;\n        if (xSignifier & 0x800000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;\n        if (xSignifier & 0x400000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;\n        if (xSignifier & 0x200000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000162E42FEFA39FE95583C2 >> 128;\n        if (xSignifier & 0x100000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;\n        if (xSignifier & 0x80000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;\n        if (xSignifier & 0x40000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000002C5C85FDF473E242EA38 >> 128;\n        if (xSignifier & 0x20000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000162E42FEFA39F02B772C >> 128;\n        if (xSignifier & 0x10000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000B17217F7D1CF7D83C1A >> 128;\n        if (xSignifier & 0x8000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;\n        if (xSignifier & 0x4000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000002C5C85FDF473DEA871F >> 128;\n        if (xSignifier & 0x2000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000162E42FEFA39EF44D91 >> 128;\n        if (xSignifier & 0x1000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000B17217F7D1CF79E949 >> 128;\n        if (xSignifier & 0x800000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000058B90BFBE8E7BCE544 >> 128;\n        if (xSignifier & 0x400000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000002C5C85FDF473DE6ECA >> 128;\n        if (xSignifier & 0x200000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000162E42FEFA39EF366F >> 128;\n        if (xSignifier & 0x100000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000B17217F7D1CF79AFA >> 128;\n        if (xSignifier & 0x80000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000058B90BFBE8E7BCD6D >> 128;\n        if (xSignifier & 0x40000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000002C5C85FDF473DE6B2 >> 128;\n        if (xSignifier & 0x20000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000162E42FEFA39EF358 >> 128;\n        if (xSignifier & 0x10000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000B17217F7D1CF79AB >> 128;\n        if (xSignifier & 0x8000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000058B90BFBE8E7BCD5 >> 128;\n        if (xSignifier & 0x4000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000002C5C85FDF473DE6A >> 128;\n        if (xSignifier & 0x2000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000162E42FEFA39EF34 >> 128;\n        if (xSignifier & 0x1000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000B17217F7D1CF799 >> 128;\n        if (xSignifier & 0x800000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000058B90BFBE8E7BCC >> 128;\n        if (xSignifier & 0x400000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000002C5C85FDF473DE5 >> 128;\n        if (xSignifier & 0x200000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000162E42FEFA39EF2 >> 128;\n        if (xSignifier & 0x100000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000B17217F7D1CF78 >> 128;\n        if (xSignifier & 0x80000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000058B90BFBE8E7BB >> 128;\n        if (xSignifier & 0x40000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000002C5C85FDF473DD >> 128;\n        if (xSignifier & 0x20000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000162E42FEFA39EE >> 128;\n        if (xSignifier & 0x10000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000B17217F7D1CF6 >> 128;\n        if (xSignifier & 0x8000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000058B90BFBE8E7A >> 128;\n        if (xSignifier & 0x4000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000002C5C85FDF473C >> 128;\n        if (xSignifier & 0x2000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000162E42FEFA39D >> 128;\n        if (xSignifier & 0x1000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000B17217F7D1CE >> 128;\n        if (xSignifier & 0x800000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000058B90BFBE8E6 >> 128;\n        if (xSignifier & 0x400000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000002C5C85FDF472 >> 128;\n        if (xSignifier & 0x200000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000162E42FEFA38 >> 128;\n        if (xSignifier & 0x100000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000B17217F7D1B >> 128;\n        if (xSignifier & 0x80000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000058B90BFBE8D >> 128;\n        if (xSignifier & 0x40000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000002C5C85FDF46 >> 128;\n        if (xSignifier & 0x20000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000162E42FEFA2 >> 128;\n        if (xSignifier & 0x10000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000B17217F7D0 >> 128;\n        if (xSignifier & 0x8000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000058B90BFBE7 >> 128;\n        if (xSignifier & 0x4000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000002C5C85FDF3 >> 128;\n        if (xSignifier & 0x2000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000162E42FEF9 >> 128;\n        if (xSignifier & 0x1000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000B17217F7C >> 128;\n        if (xSignifier & 0x800000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000058B90BFBD >> 128;\n        if (xSignifier & 0x400000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000002C5C85FDE >> 128;\n        if (xSignifier & 0x200000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000162E42FEE >> 128;\n        if (xSignifier & 0x100000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000B17217F6 >> 128;\n        if (xSignifier & 0x80000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000058B90BFA >> 128;\n        if (xSignifier & 0x40000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000002C5C85FC >> 128;\n        if (xSignifier & 0x20000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000162E42FD >> 128;\n        if (xSignifier & 0x10000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000B17217E >> 128;\n        if (xSignifier & 0x8000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000058B90BE >> 128;\n        if (xSignifier & 0x4000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000002C5C85E >> 128;\n        if (xSignifier & 0x2000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000162E42E >> 128;\n        if (xSignifier & 0x1000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000B17216 >> 128;\n        if (xSignifier & 0x800000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000058B90A >> 128;\n        if (xSignifier & 0x400000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000002C5C84 >> 128;\n        if (xSignifier & 0x200000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000162E41 >> 128;\n        if (xSignifier & 0x100000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000B1720 >> 128;\n        if (xSignifier & 0x80000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000058B8F >> 128;\n        if (xSignifier & 0x40000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000002C5C7 >> 128;\n        if (xSignifier & 0x20000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000162E3 >> 128;\n        if (xSignifier & 0x10000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000B171 >> 128;\n        if (xSignifier & 0x8000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000058B8 >> 128;\n        if (xSignifier & 0x4000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000002C5B >> 128;\n        if (xSignifier & 0x2000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000162D >> 128;\n        if (xSignifier & 0x1000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000B16 >> 128;\n        if (xSignifier & 0x800 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000058A >> 128;\n        if (xSignifier & 0x400 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000002C4 >> 128;\n        if (xSignifier & 0x200 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000161 >> 128;\n        if (xSignifier & 0x100 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000000B0 >> 128;\n        if (xSignifier & 0x80 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000057 >> 128;\n        if (xSignifier & 0x40 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000002B >> 128;\n        if (xSignifier & 0x20 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000015 >> 128;\n        if (xSignifier & 0x10 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000000A >> 128;\n        if (xSignifier & 0x8 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000004 >> 128;\n        if (xSignifier & 0x4 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000001 >> 128;\n\n        if (!xNegative) {\n          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          resultExponent += 0x3FFF;\n        } else if (resultExponent <= 0x3FFE) {\n          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n          resultExponent = 0x3FFF - resultExponent;\n        } else {\n          resultSignifier = resultSignifier >> resultExponent - 16367;\n          resultExponent = 0;\n        }\n\n        return bytes16 (uint128 (resultExponent << 112 | resultSignifier));\n      }\n    }\n  }\n\n  /**\n   * Calculate e^x.\n   *\n   * @param x quadruple precision number\n   * @return quadruple precision number\n   */\n  function exp (bytes16 x) internal pure returns (bytes16) {\n    unchecked {\n      return pow_2 (mul (x, 0x3FFF71547652B82FE1777D0FFDA0D23A));\n    }\n  }\n\n  /**\n   * Get index of the most significant non-zero bit in binary representation of\n   * x.  Reverts if x is zero.\n   *\n   * @return index of the most significant non-zero bit in binary representation\n   *         of x\n   */\n  function mostSignificantBit (uint256 x) private pure returns (uint256) {\n    unchecked {\n      require (x > 0);\n\n      uint256 result = 0;\n\n      if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; }\n      if (x >= 0x10000000000000000) { x >>= 64; result += 64; }\n      if (x >= 0x100000000) { x >>= 32; result += 32; }\n      if (x >= 0x10000) { x >>= 16; result += 16; }\n      if (x >= 0x100) { x >>= 8; result += 8; }\n      if (x >= 0x10) { x >>= 4; result += 4; }\n      if (x >= 0x4) { x >>= 2; result += 2; }\n      if (x >= 0x2) result += 1; // No need to shift x anymore\n\n      return result;\n    }\n  }\n}\n"
			},
			"@openzeppelin/contracts/access/AccessControl.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address account => bool) hasRole;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 role => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with an {AccessControlUnauthorizedAccount} error including the required role.\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n        return _roles[role].hasRole[account];\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n     * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n     * is missing `role`.\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert AccessControlUnauthorizedAccount(account, role);\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n        if (callerConfirmation != _msgSender()) {\n            revert AccessControlBadConfirmation();\n        }\n\n        _revokeRole(role, callerConfirmation);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n        if (!hasRole(role, account)) {\n            _roles[role].hasRole[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n        if (hasRole(role, account)) {\n            _roles[role].hasRole[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n}\n"
			},
			"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface AggregatorV3Interface {\n  function decimals() external view returns (uint8);\n\n  function description() external view returns (string memory);\n\n  function version() external view returns (uint256);\n\n  function getRoundData(\n    uint80 _roundId\n  ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\n\n  function latestRoundData()\n    external\n    view\n    returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\n}\n"
			},
			"@openzeppelin/contracts/token/common/ERC2981.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/common/ERC2981.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC2981} from \"../../interfaces/IERC2981.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n *\n * Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n * specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n *\n * Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n * fee is specified in basis points by default.\n *\n * IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n * https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n * voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\n */\nabstract contract ERC2981 is IERC2981, ERC165 {\n    struct RoyaltyInfo {\n        address receiver;\n        uint96 royaltyFraction;\n    }\n\n    RoyaltyInfo private _defaultRoyaltyInfo;\n    mapping(uint256 tokenId => RoyaltyInfo) private _tokenRoyaltyInfo;\n\n    /**\n     * @dev The default royalty set is invalid (eg. (numerator / denominator) >= 1).\n     */\n    error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator);\n\n    /**\n     * @dev The default royalty receiver is invalid.\n     */\n    error ERC2981InvalidDefaultRoyaltyReceiver(address receiver);\n\n    /**\n     * @dev The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1).\n     */\n    error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator);\n\n    /**\n     * @dev The royalty receiver for `tokenId` is invalid.\n     */\n    error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver);\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        return interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @inheritdoc IERC2981\n     */\n    function royaltyInfo(uint256 tokenId, uint256 salePrice) public view virtual returns (address, uint256) {\n        RoyaltyInfo memory royalty = _tokenRoyaltyInfo[tokenId];\n\n        if (royalty.receiver == address(0)) {\n            royalty = _defaultRoyaltyInfo;\n        }\n\n        uint256 royaltyAmount = (salePrice * royalty.royaltyFraction) / _feeDenominator();\n\n        return (royalty.receiver, royaltyAmount);\n    }\n\n    /**\n     * @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n     * fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n     * override.\n     */\n    function _feeDenominator() internal pure virtual returns (uint96) {\n        return 10000;\n    }\n\n    /**\n     * @dev Sets the royalty information that all ids in this contract will default to.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setDefaultRoyalty(address receiver, uint96 feeNumerator) internal virtual {\n        uint256 denominator = _feeDenominator();\n        if (feeNumerator > denominator) {\n            // Royalty fee will exceed the sale price\n            revert ERC2981InvalidDefaultRoyalty(feeNumerator, denominator);\n        }\n        if (receiver == address(0)) {\n            revert ERC2981InvalidDefaultRoyaltyReceiver(address(0));\n        }\n\n        _defaultRoyaltyInfo = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Removes default royalty information.\n     */\n    function _deleteDefaultRoyalty() internal virtual {\n        delete _defaultRoyaltyInfo;\n    }\n\n    /**\n     * @dev Sets the royalty information for a specific token id, overriding the global default.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator) internal virtual {\n        uint256 denominator = _feeDenominator();\n        if (feeNumerator > denominator) {\n            // Royalty fee will exceed the sale price\n            revert ERC2981InvalidTokenRoyalty(tokenId, feeNumerator, denominator);\n        }\n        if (receiver == address(0)) {\n            revert ERC2981InvalidTokenRoyaltyReceiver(tokenId, address(0));\n        }\n\n        _tokenRoyaltyInfo[tokenId] = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Resets royalty information for the token id back to the global default.\n     */\n    function _resetTokenRoyalty(uint256 tokenId) internal virtual {\n        delete _tokenRoyaltyInfo[tokenId];\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC721/ERC721.sol": {
				"content": "    // SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    mapping(uint256 tokenId => address) private _owners;\n\n    mapping(address owner => uint256) private _balances;\n\n    mapping(uint256 tokenId => address) private _tokenApprovals;\n\n    mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual returns (uint256) {\n        if (owner == address(0)) {\n            revert ERC721InvalidOwner(address(0));\n        }\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual returns (address) {\n        return _requireOwned(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n        _requireOwned(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual {\n        _approve(to, tokenId, _msgSender());\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual returns (address) {\n        _requireOwned(tokenId);\n\n        return _getApproved(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) public virtual {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n        // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n        address previousOwner = _update(to, tokenId, _msgSender());\n        if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) public {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n        transferFrom(from, to, tokenId);\n        _checkOnERC721Received(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     *\n     * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n     * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n     * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n     * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        return _owners[tokenId];\n    }\n\n    /**\n     * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n     */\n    function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n     * particular (ignoring whether it is owned by `owner`).\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n        return\n            spender != address(0) &&\n            (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n     * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n     * the `spender` for the specific `tokenId`.\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n        if (!_isAuthorized(owner, spender, tokenId)) {\n            if (owner == address(0)) {\n                revert ERC721NonexistentToken(tokenId);\n            } else {\n                revert ERC721InsufficientApproval(spender, tokenId);\n            }\n        }\n    }\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n     * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n     *\n     * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n     * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n     * remain consistent with one another.\n     */\n    function _increaseBalance(address account, uint128 value) internal virtual {\n        unchecked {\n            _balances[account] += value;\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n     * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n     * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n     */\n    function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n        address from = _ownerOf(tokenId);\n\n        // Perform (optional) operator check\n        if (auth != address(0)) {\n            _checkAuthorized(from, auth, tokenId);\n        }\n\n        // Execute the update\n        if (from != address(0)) {\n            // Clear approval. No need to re-authorize or emit the Approval event\n            _approve(address(0), tokenId, address(0), false);\n\n            unchecked {\n                _balances[from] -= 1;\n            }\n        }\n\n        if (to != address(0)) {\n            unchecked {\n                _balances[to] += 1;\n            }\n        }\n\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        return from;\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner != address(0)) {\n            revert ERC721InvalidSender(address(0));\n        }\n    }\n\n    /**\n     * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n        _mint(to, tokenId);\n        _checkOnERC721Received(address(0), to, tokenId, data);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal {\n        address previousOwner = _update(address(0), tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(address from, address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        } else if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n     * are aware of the ERC721 standard to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is like {safeTransferFrom} in the sense that it invokes\n     * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `tokenId` token must exist and be owned by `from`.\n     * - `to` cannot be the zero address.\n     * - `from` cannot be the zero address.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId) internal {\n        _safeTransfer(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n        _transfer(from, to, tokenId);\n        _checkOnERC721Received(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n     * either the owner of the token, or approved to operate on all tokens held by this owner.\n     *\n     * Emits an {Approval} event.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address to, uint256 tokenId, address auth) internal {\n        _approve(to, tokenId, auth, true);\n    }\n\n    /**\n     * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n     * emitted in the context of transfers.\n     */\n    function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n        // Avoid reading the owner unless necessary\n        if (emitEvent || auth != address(0)) {\n            address owner = _requireOwned(tokenId);\n\n            // We do not use _isAuthorized because single-token approvals should not be able to call approve\n            if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n                revert ERC721InvalidApprover(auth);\n            }\n\n            if (emitEvent) {\n                emit Approval(owner, to, tokenId);\n            }\n        }\n\n        _tokenApprovals[tokenId] = to;\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Requirements:\n     * - operator can't be the address zero.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n        if (operator == address(0)) {\n            revert ERC721InvalidOperator(operator);\n        }\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n     * Returns the owner.\n     *\n     * Overrides to ownership logic should be done to {_ownerOf}.\n     */\n    function _requireOwned(uint256 tokenId) internal view returns (address) {\n        address owner = _ownerOf(tokenId);\n        if (owner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n        return owner;\n    }\n\n    /**\n     * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n     * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param data bytes optional data to send along with the call\n     */\n    function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n        if (to.code.length > 0) {\n            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                if (retval != IERC721Receiver.onERC721Received.selector) {\n                    revert ERC721InvalidReceiver(to);\n                }\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert ERC721InvalidReceiver(to);\n                } else {\n                    /// @solidity memory-safe-assembly\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        }\n    }\n}\n"
			},
			"@openzeppelin/contracts/access/Ownable.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"
			},
			"contracts/TixSellLibraries.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\nlibrary TixSellLibrary {\n     \n     struct TicketDesignInfo {\n        string gradient1Color;\n        string gradient2Color;\n        string eventTitleOne;\n        string eventTitleTwo;\n        string eventTitleFont;\n        string eventColor;\n        string ticketTypeFont;\n        string ticketTypeColor;\n        string price;\n        string priceColor; \n        string priceFont;\n        string fontUrl;\n        string ticketType;\n        string venue;\n        string svgUrl;\n     }\n\n     struct TicketType {\n        uint256 id;\n        uint32 maxTickets;\n        uint32 maxTicketsPerUser;\n        uint256 ticketPrice; //exprimé en WEI 1 € = 1 ETH = 10^18 WEI (euros) \n        uint256 bookingStartDate;\n        uint256 bookingEndDate;\n        bool revealed;\n        uint256 revealStartDate;\n        bool sellable;\n        uint256 maxSellablePrice;\n        uint256 royaltySellable;\n        bool earlyBid;\n        uint256 discountPrice;\n        uint256 discountEndDate;\n        uint256 templateId;\n        uint256 fixAmount ; // amount for TixSell per ticket sold\n        bool freeDrink;\n        bool priorityQueue;\n        string name;\n        string hiddenuri ; \n        string image;\n        TicketDesignInfo ticketDesignInfo;\n    }\n \n    struct NftTicketInfo {\n        uint256 templateId;\n        uint256 tokenId;\n        string image;\n        uint256 eventDate; \n        TicketDesignInfo ticketDesignInfo; \n        bool freeDrink;\n        bool priorityQueue;   \n        bool sellable;   \n    }\n}"
			},
			"contracts/TixSellReservationLibrary.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\nlibrary TixSellReservationLibrary {\n      \n\n     struct TicketReservation {\n        string id;\n        address owner;\n        uint256 reservationDate;\n        uint256 expirationDate;\n        uint256 amount;\n        uint256 ticketTypeId;\n        bool used;\n        bool exists; \n    }\n \n}"
			},
			"contracts/TixSellEventLibrary.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\nlibrary TixSellEventLibrary {\n    enum EventType{ ONLINE, VENUE } //0 ou 1\n    struct Event {\n        string id;\n        uint256 eventDate;\n        uint256 duration;\n        EventType typeEvent;\n        string name;\n        string description;       \n        bool canceled;\n        uint96 royalty;  //must be 100,200,300,..., 10 000 (for 100%)\n    } \n  \n}"
			},
			"@openzeppelin/contracts/utils/Context.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev The ETH balance of the account is not enough to perform the operation.\n     */\n    error AddressInsufficientBalance(address account);\n\n    /**\n     * @dev There's no code at `target` (it is not a contract).\n     */\n    error AddressEmptyCode(address target);\n\n    /**\n     * @dev A call to an address target failed. The target may have reverted.\n     */\n    error FailedInnerCall();\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        if (address(this).balance < amount) {\n            revert AddressInsufficientBalance(address(this));\n        }\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        if (!success) {\n            revert FailedInnerCall();\n        }\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason or custom error, it is bubbled\n     * up by this function (like regular Solidity function calls). However, if\n     * the call reverted with no returned reason, this function reverts with a\n     * {FailedInnerCall} error.\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        if (address(this).balance < value) {\n            revert AddressInsufficientBalance(address(this));\n        }\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n     * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n     * unsuccessful call.\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata\n    ) internal view returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            // only check if target is a contract if the call was successful and the return data is empty\n            // otherwise we already know that it was a contract\n            if (returndata.length == 0 && target.code.length == 0) {\n                revert AddressEmptyCode(target);\n            }\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n     * revert reason or with a default {FailedInnerCall} error.\n     */\n    function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n     */\n    function _revert(bytes memory returndata) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert FailedInnerCall();\n        }\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\nimport {IERC20Permit} from \"../extensions/IERC20Permit.sol\";\nimport {Address} from \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    /**\n     * @dev An operation with an ERC20 token failed.\n     */\n    error SafeERC20FailedOperation(address token);\n\n    /**\n     * @dev Indicates a failed `decreaseAllowance` request.\n     */\n    error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        forceApprove(token, spender, oldAllowance + value);\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n     * value, non-reverting calls are assumed to be successful.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\n        unchecked {\n            uint256 currentAllowance = token.allowance(address(this), spender);\n            if (currentAllowance < requestedDecrease) {\n                revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\n            }\n            forceApprove(token, spender, currentAllowance - requestedDecrease);\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data);\n        if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n        // and not revert is the subcall reverts.\n\n        (bool success, bytes memory returndata) = address(token).call(data);\n        return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\n    }\n}\n"
			},
			"@openzeppelin/contracts/utils/introspection/ERC165.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"
			},
			"@openzeppelin/contracts/interfaces/IERC2981.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC2981.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface for the NFT Royalty Standard.\n *\n * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n * support for royalty payments across all NFT marketplaces and ecosystem participants.\n */\ninterface IERC2981 is IERC165 {\n    /**\n     * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n     * exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\n     */\n    function royaltyInfo(\n        uint256 tokenId,\n        uint256 salePrice\n    ) external view returns (address receiver, uint256 royaltyAmount);\n}\n"
			},
			"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC20InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC20InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     * @param allowance Amount of tokens a `spender` is allowed to operate with.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC20InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n    /**\n     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n     * Used in balance queries.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721InvalidOwner(address owner);\n\n    /**\n     * @dev Indicates a `tokenId` whose `owner` is the zero address.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721NonexistentToken(uint256 tokenId);\n\n    /**\n     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param tokenId Identifier number of a token.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC721InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC721InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC721InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC1155InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC1155InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC1155MissingApprovalForAll(address operator, address owner);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC1155InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC1155InvalidOperator(address operator);\n\n    /**\n     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n     * Used in batch transfers.\n     * @param idsLength Length of the array of token identifiers\n     * @param valuesLength Length of the array of token amounts\n     */\n    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"
			},
			"@openzeppelin/contracts/utils/Strings.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n    uint8 private constant ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev The `value` string doesn't fit in the specified `length`.\n     */\n    error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toStringSigned(int256 value) internal pure returns (string memory) {\n        return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        uint256 localValue = value;\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = HEX_DIGITS[localValue & 0xf];\n            localValue >>= 4;\n        }\n        if (localValue != 0) {\n            revert StringsInsufficientHexLength(value, length);\n        }\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n     * representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"
			},
			"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n     * reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"
			},
			"@openzeppelin/contracts/token/ERC721/IERC721.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n     *   a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n     *   {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n     *   a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the address zero.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"
			},
			"@openzeppelin/contracts/access/IAccessControl.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev The `account` is missing a role.\n     */\n    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n    /**\n     * @dev The caller of a function is not the expected one.\n     *\n     * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n     */\n    error AccessControlBadConfirmation();\n\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n"
			},
			"@openzeppelin/contracts/utils/introspection/IERC165.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"
			},
			"@openzeppelin/contracts/utils/math/SignedMath.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"
			},
			"@openzeppelin/contracts/utils/math/Math.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    /**\n     * @dev Muldiv operation overflow.\n     */\n    error MathOverflowedMulDiv();\n\n    enum Rounding {\n        Floor, // Toward negative infinity\n        Ceil, // Toward positive infinity\n        Trunc, // Toward zero\n        Expand // Away from zero\n    }\n\n    /**\n     * @dev Returns the addition of two unsigned integers, with an overflow flag.\n     */\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            uint256 c = a + b;\n            if (c < a) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n     */\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b > a) return (false, 0);\n            return (true, a - b);\n        }\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n     */\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n            // benefit is lost if 'b' is also tested.\n            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n            if (a == 0) return (true, 0);\n            uint256 c = a * b;\n            if (c / a != b) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the division of two unsigned integers, with a division by zero flag.\n     */\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a / b);\n        }\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n     */\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a % b);\n        }\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds towards infinity instead\n     * of rounding towards zero.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        if (b == 0) {\n            // Guarantee the same behavior as in a regular Solidity division.\n            return a / b;\n        }\n\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n     * denominator == 0.\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n     * Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0 = x * y; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            if (denominator <= prod1) {\n                revert MathOverflowedMulDiv();\n            }\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n            // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n            uint256 twos = denominator & (0 - denominator);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n            // works in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n     * towards zero.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2 of a positive value rounded towards zero.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10 of a positive value rounded towards zero.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256 of a positive value rounded towards zero.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n     */\n    function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n        return uint8(rounding) % 2 == 1;\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * ==== Security Considerations\n *\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n * generally recommended is:\n *\n * ```solidity\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n *     doThing(..., value);\n * }\n *\n * function doThing(..., uint256 value) public {\n *     token.safeTransferFrom(msg.sender, address(this), value);\n *     ...\n * }\n * ```\n *\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n * {SafeERC20-safeTransferFrom}).\n *\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n * contracts should have entry points that don't rely on permit.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     *\n     * CAUTION: See Security Considerations above.\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"
			},
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the value of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the value of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\n     * allowance mechanism. `value` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"
			}
		}
	},
	"output": {
		"contracts": {
			"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol": {
				"AggregatorV3Interface": {
					"abi": [
						{
							"inputs": [],
							"name": "decimals",
							"outputs": [
								{
									"internalType": "uint8",
									"name": "",
									"type": "uint8"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "description",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint80",
									"name": "_roundId",
									"type": "uint80"
								}
							],
							"name": "getRoundData",
							"outputs": [
								{
									"internalType": "uint80",
									"name": "roundId",
									"type": "uint80"
								},
								{
									"internalType": "int256",
									"name": "answer",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "startedAt",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "updatedAt",
									"type": "uint256"
								},
								{
									"internalType": "uint80",
									"name": "answeredInRound",
									"type": "uint80"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "latestRoundData",
							"outputs": [
								{
									"internalType": "uint80",
									"name": "roundId",
									"type": "uint80"
								},
								{
									"internalType": "int256",
									"name": "answer",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "startedAt",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "updatedAt",
									"type": "uint256"
								},
								{
									"internalType": "uint80",
									"name": "answeredInRound",
									"type": "uint80"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "version",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"decimals()": "313ce567",
							"description()": "7284e416",
							"getRoundData(uint80)": "9a6fc8f5",
							"latestRoundData()": "feaf968c",
							"version()": "54fd4d50"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":\"AggregatorV3Interface\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/access/AccessControl.sol": {
				"AccessControl": {
					"abi": [
						{
							"inputs": [],
							"name": "AccessControlBadConfirmation",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "neededRole",
									"type": "bytes32"
								}
							],
							"name": "AccessControlUnauthorizedAccount",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "previousAdminRole",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "newAdminRole",
									"type": "bytes32"
								}
							],
							"name": "RoleAdminChanged",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleGranted",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleRevoked",
							"type": "event"
						},
						{
							"inputs": [],
							"name": "DEFAULT_ADMIN_ROLE",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								}
							],
							"name": "getRoleAdmin",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "grantRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "hasRole",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "callerConfirmation",
									"type": "address"
								}
							],
							"name": "renounceRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "revokeRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.",
						"errors": {
							"AccessControlBadConfirmation()": [
								{
									"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
								}
							],
							"AccessControlUnauthorizedAccount(address,bytes32)": [
								{
									"details": "The `account` is missing a role."
								}
							]
						},
						"events": {
							"RoleAdminChanged(bytes32,bytes32,bytes32)": {
								"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
							},
							"RoleGranted(bytes32,address,address)": {
								"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
							},
							"RoleRevoked(bytes32,address,address)": {
								"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"
							}
						},
						"kind": "dev",
						"methods": {
							"getRoleAdmin(bytes32)": {
								"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
							},
							"grantRole(bytes32,address)": {
								"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
							},
							"hasRole(bytes32,address)": {
								"details": "Returns `true` if `account` has been granted `role`."
							},
							"renounceRole(bytes32,address)": {
								"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."
							},
							"revokeRole(bytes32,address)": {
								"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
							},
							"supportsInterface(bytes4)": {
								"details": "See {IERC165-supportsInterface}."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"DEFAULT_ADMIN_ROLE()": "a217fddf",
							"getRoleAdmin(bytes32)": "248a9ca3",
							"grantRole(bytes32,address)": "2f2ff15d",
							"hasRole(bytes32,address)": "91d14854",
							"renounceRole(bytes32,address)": "36568abe",
							"revokeRole(bytes32,address)": "d547741f",
							"supportsInterface(bytes4)": "01ffc9a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 72,
								"contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl",
								"label": "_roles",
								"offset": 0,
								"slot": "0",
								"type": "t_mapping(t_bytes32,t_struct(RoleData)67_storage)"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_bool": {
								"encoding": "inplace",
								"label": "bool",
								"numberOfBytes": "1"
							},
							"t_bytes32": {
								"encoding": "inplace",
								"label": "bytes32",
								"numberOfBytes": "32"
							},
							"t_mapping(t_address,t_bool)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => bool)",
								"numberOfBytes": "32",
								"value": "t_bool"
							},
							"t_mapping(t_bytes32,t_struct(RoleData)67_storage)": {
								"encoding": "mapping",
								"key": "t_bytes32",
								"label": "mapping(bytes32 => struct AccessControl.RoleData)",
								"numberOfBytes": "32",
								"value": "t_struct(RoleData)67_storage"
							},
							"t_struct(RoleData)67_storage": {
								"encoding": "inplace",
								"label": "struct AccessControl.RoleData",
								"members": [
									{
										"astId": 64,
										"contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl",
										"label": "hasRole",
										"offset": 0,
										"slot": "0",
										"type": "t_mapping(t_address,t_bool)"
									},
									{
										"astId": 66,
										"contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl",
										"label": "adminRole",
										"offset": 0,
										"slot": "1",
										"type": "t_bytes32"
									}
								],
								"numberOfBytes": "64"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/access/IAccessControl.sol": {
				"IAccessControl": {
					"abi": [
						{
							"inputs": [],
							"name": "AccessControlBadConfirmation",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "neededRole",
									"type": "bytes32"
								}
							],
							"name": "AccessControlUnauthorizedAccount",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "previousAdminRole",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "newAdminRole",
									"type": "bytes32"
								}
							],
							"name": "RoleAdminChanged",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleGranted",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleRevoked",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								}
							],
							"name": "getRoleAdmin",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "grantRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "hasRole",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "callerConfirmation",
									"type": "address"
								}
							],
							"name": "renounceRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "revokeRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "External interface of AccessControl declared to support ERC165 detection.",
						"errors": {
							"AccessControlBadConfirmation()": [
								{
									"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
								}
							],
							"AccessControlUnauthorizedAccount(address,bytes32)": [
								{
									"details": "The `account` is missing a role."
								}
							]
						},
						"events": {
							"RoleAdminChanged(bytes32,bytes32,bytes32)": {
								"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
							},
							"RoleGranted(bytes32,address,address)": {
								"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
							},
							"RoleRevoked(bytes32,address,address)": {
								"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"
							}
						},
						"kind": "dev",
						"methods": {
							"getRoleAdmin(bytes32)": {
								"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."
							},
							"grantRole(bytes32,address)": {
								"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."
							},
							"hasRole(bytes32,address)": {
								"details": "Returns `true` if `account` has been granted `role`."
							},
							"renounceRole(bytes32,address)": {
								"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."
							},
							"revokeRole(bytes32,address)": {
								"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"getRoleAdmin(bytes32)": "248a9ca3",
							"grantRole(bytes32,address)": "2f2ff15d",
							"hasRole(bytes32,address)": "91d14854",
							"renounceRole(bytes32,address)": "36568abe",
							"revokeRole(bytes32,address)": "d547741f"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/access/Ownable.sol": {
				"Ownable": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "OwnableInvalidOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "OwnableUnauthorizedAccount",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "previousOwner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "newOwner",
									"type": "address"
								}
							],
							"name": "OwnershipTransferred",
							"type": "event"
						},
						{
							"inputs": [],
							"name": "owner",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "renounceOwnership",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "newOwner",
									"type": "address"
								}
							],
							"name": "transferOwnership",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
						"errors": {
							"OwnableInvalidOwner(address)": [
								{
									"details": "The owner is not a valid owner account. (eg. `address(0)`)"
								}
							],
							"OwnableUnauthorizedAccount(address)": [
								{
									"details": "The caller account is not authorized to perform an operation."
								}
							]
						},
						"kind": "dev",
						"methods": {
							"constructor": {
								"details": "Initializes the contract setting the address provided by the deployer as the initial owner."
							},
							"owner()": {
								"details": "Returns the address of the current owner."
							},
							"renounceOwnership()": {
								"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
							},
							"transferOwnership(address)": {
								"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"owner()": "8da5cb5b",
							"renounceOwnership()": "715018a6",
							"transferOwnership(address)": "f2fde38b"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 433,
								"contract": "@openzeppelin/contracts/access/Ownable.sol:Ownable",
								"label": "_owner",
								"offset": 0,
								"slot": "0",
								"type": "t_address"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/interfaces/IERC2981.sol": {
				"IERC2981": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "salePrice",
									"type": "uint256"
								}
							],
							"name": "royaltyInfo",
							"outputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "royaltyAmount",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface for the NFT Royalty Standard. A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants.",
						"kind": "dev",
						"methods": {
							"royaltyInfo(uint256,uint256)": {
								"details": "Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange."
							},
							"supportsInterface(bytes4)": {
								"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"royaltyInfo(uint256,uint256)": "2a55205a",
							"supportsInterface(bytes4)": "01ffc9a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"royaltyAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the NFT Royalty Standard. A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants.\",\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":\"IERC2981\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x89b84f7b1b2d6c294cd6b9a9f661c1cfb1b9b10ca7bac5b3445850a8ce96dcf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44f961aefa43a50c94d8b68e749235b2cf3bd1de18bf6f2e5e1c0fd9a59e06ea\",\"dweb:/ipfs/QmNzd2bnJidavPtt2hQ1em387T6W37n3kDx8WrneCZozxV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
				"IERC1155Errors": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "balance",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "needed",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC1155InsufficientBalance",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "approver",
									"type": "address"
								}
							],
							"name": "ERC1155InvalidApprover",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "idsLength",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "valuesLength",
									"type": "uint256"
								}
							],
							"name": "ERC1155InvalidArrayLength",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "ERC1155InvalidOperator",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC1155InvalidReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "ERC1155InvalidSender",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC1155MissingApprovalForAll",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.",
						"errors": {
							"ERC1155InsufficientBalance(address,uint256,uint256,uint256)": [
								{
									"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
									"params": {
										"balance": "Current balance for the interacting account.",
										"needed": "Minimum amount required to perform a transfer.",
										"sender": "Address whose tokens are being transferred.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC1155InvalidApprover(address)": [
								{
									"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
									"params": {
										"approver": "Address initiating an approval operation."
									}
								}
							],
							"ERC1155InvalidArrayLength(uint256,uint256)": [
								{
									"details": "Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.",
									"params": {
										"idsLength": "Length of the array of token identifiers",
										"valuesLength": "Length of the array of token amounts"
									}
								}
							],
							"ERC1155InvalidOperator(address)": [
								{
									"details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							],
							"ERC1155InvalidReceiver(address)": [
								{
									"details": "Indicates a failure with the token `receiver`. Used in transfers.",
									"params": {
										"receiver": "Address to which tokens are being transferred."
									}
								}
							],
							"ERC1155InvalidSender(address)": [
								{
									"details": "Indicates a failure with the token `sender`. Used in transfers.",
									"params": {
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC1155MissingApprovalForAll(address,address)": [
								{
									"details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner.",
										"owner": "Address of the current owner of a token."
									}
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				},
				"IERC20Errors": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "allowance",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "needed",
									"type": "uint256"
								}
							],
							"name": "ERC20InsufficientAllowance",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "balance",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "needed",
									"type": "uint256"
								}
							],
							"name": "ERC20InsufficientBalance",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "approver",
									"type": "address"
								}
							],
							"name": "ERC20InvalidApprover",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC20InvalidReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "ERC20InvalidSender",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								}
							],
							"name": "ERC20InvalidSpender",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.",
						"errors": {
							"ERC20InsufficientAllowance(address,uint256,uint256)": [
								{
									"details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.",
									"params": {
										"allowance": "Amount of tokens a `spender` is allowed to operate with.",
										"needed": "Minimum amount required to perform a transfer.",
										"spender": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							],
							"ERC20InsufficientBalance(address,uint256,uint256)": [
								{
									"details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
									"params": {
										"balance": "Current balance for the interacting account.",
										"needed": "Minimum amount required to perform a transfer.",
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC20InvalidApprover(address)": [
								{
									"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
									"params": {
										"approver": "Address initiating an approval operation."
									}
								}
							],
							"ERC20InvalidReceiver(address)": [
								{
									"details": "Indicates a failure with the token `receiver`. Used in transfers.",
									"params": {
										"receiver": "Address to which tokens are being transferred."
									}
								}
							],
							"ERC20InvalidSender(address)": [
								{
									"details": "Indicates a failure with the token `sender`. Used in transfers.",
									"params": {
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC20InvalidSpender(address)": [
								{
									"details": "Indicates a failure with the `spender` to be approved. Used in approvals.",
									"params": {
										"spender": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				},
				"IERC721Errors": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721IncorrectOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721InsufficientApproval",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "approver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidApprover",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOperator",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "ERC721InvalidSender",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721NonexistentToken",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.",
						"errors": {
							"ERC721IncorrectOwner(address,uint256,address)": [
								{
									"details": "Indicates an error related to the ownership over a particular token. Used in transfers.",
									"params": {
										"owner": "Address of the current owner of a token.",
										"sender": "Address whose tokens are being transferred.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InsufficientApproval(address,uint256)": [
								{
									"details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InvalidApprover(address)": [
								{
									"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
									"params": {
										"approver": "Address initiating an approval operation."
									}
								}
							],
							"ERC721InvalidOperator(address)": [
								{
									"details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							],
							"ERC721InvalidOwner(address)": [
								{
									"details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.",
									"params": {
										"owner": "Address of the current owner of a token."
									}
								}
							],
							"ERC721InvalidReceiver(address)": [
								{
									"details": "Indicates a failure with the token `receiver`. Used in transfers.",
									"params": {
										"receiver": "Address to which tokens are being transferred."
									}
								}
							],
							"ERC721InvalidSender(address)": [
								{
									"details": "Indicates a failure with the token `sender`. Used in transfers.",
									"params": {
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC721NonexistentToken(uint256)": [
								{
									"details": "Indicates a `tokenId` whose `owner` is the zero address.",
									"params": {
										"tokenId": "Identifier number of a token."
									}
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"IERC20": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								}
							],
							"name": "allowance",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalSupply",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "transfer",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface of the ERC20 standard as defined in the EIP.",
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
							}
						},
						"kind": "dev",
						"methods": {
							"allowance(address,address)": {
								"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
							},
							"approve(address,uint256)": {
								"details": "Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
							},
							"balanceOf(address)": {
								"details": "Returns the value of tokens owned by `account`."
							},
							"totalSupply()": {
								"details": "Returns the value of tokens in existence."
							},
							"transfer(address,uint256)": {
								"details": "Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
							},
							"transferFrom(address,address,uint256)": {
								"details": "Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"allowance(address,address)": "dd62ed3e",
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"totalSupply()": "18160ddd",
							"transfer(address,uint256)": "a9059cbb",
							"transferFrom(address,address,uint256)": "23b872dd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": {
				"IERC20Permit": {
					"abi": [
						{
							"inputs": [],
							"name": "DOMAIN_SEPARATOR",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "nonces",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "deadline",
									"type": "uint256"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								},
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								}
							],
							"name": "permit",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.",
						"kind": "dev",
						"methods": {
							"DOMAIN_SEPARATOR()": {
								"details": "Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
							},
							"nonces(address)": {
								"details": "Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."
							},
							"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": {
								"details": "Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"DOMAIN_SEPARATOR()": "3644e515",
							"nonces(address)": "7ecebe00",
							"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"SafeERC20": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "currentAllowance",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "requestedDecrease",
									"type": "uint256"
								}
							],
							"name": "SafeERC20FailedDecreaseAllowance",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "token",
									"type": "address"
								}
							],
							"name": "SafeERC20FailedOperation",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
						"errors": {
							"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)": [
								{
									"details": "Indicates a failed `decreaseAllowance` request."
								}
							],
							"SafeERC20FailedOperation(address)": [
								{
									"details": "An operation with an ERC20 token failed."
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"title": "SafeERC20",
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":751:5769  library SafeERC20 {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":751:5769  library SafeERC20 {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220bc2168398a4ccfac50b128774190acdce96068b028f5beee01fe3d45ecd46d4664736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220bc2168398a4ccfac50b128774190acdce96068b028f5beee01fe3d45ecd46d4664736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x21 PUSH9 0x398A4CCFAC50B12877 COINBASE SWAP1 0xAC 0xDC 0xE9 PUSH1 0x68 0xB0 0x28 CREATE2 0xBE 0xEE ADD INVALID RETURNDATASIZE GASLIMIT 0xEC 0xD4 PUSH14 0x4664736F6C634300081400330000 ",
							"sourceMap": "751:5018:8:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea2646970667358221220bc2168398a4ccfac50b128774190acdce96068b028f5beee01fe3d45ecd46d4664736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x21 PUSH9 0x398A4CCFAC50B12877 COINBASE SWAP1 0xAC 0xDC 0xE9 PUSH1 0x68 0xB0 0x28 CREATE2 0xBE 0xEE ADD INVALID RETURNDATASIZE GASLIMIT 0xEC 0xD4 PUSH14 0x4664736F6C634300081400330000 ",
							"sourceMap": "751:5018:8:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"_callOptionalReturn(contract IERC20,bytes memory)": "infinite",
								"_callOptionalReturnBool(contract IERC20,bytes memory)": "infinite",
								"forceApprove(contract IERC20,address,uint256)": "infinite",
								"safeDecreaseAllowance(contract IERC20,address,uint256)": "infinite",
								"safeIncreaseAllowance(contract IERC20,address,uint256)": "infinite",
								"safeTransfer(contract IERC20,address,uint256)": "infinite",
								"safeTransferFrom(contract IERC20,address,address,uint256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH",
									"source": 8,
									"value": "80"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "DUP1",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH",
									"source": 8,
									"value": "40"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "MSTORE",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "CALLVALUE",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH [tag]",
									"source": 8,
									"value": "1"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "JUMPI",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH #[$]",
									"source": 8,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "SWAP1",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "DUP2",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH [$]",
									"source": 8,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "DUP3",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "CODECOPY",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "ADDRESS",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "DUP2",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "ASSIGNIMMUTABLE",
									"source": 8,
									"value": "library_deploy_address"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "RETURN",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "tag",
									"source": 8,
									"value": "1"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "JUMPDEST",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "PUSH",
									"source": 8,
									"value": "0"
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "DUP1",
									"source": 8
								},
								{
									"begin": 751,
									"end": 5769,
									"name": "REVERT",
									"source": 8
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220bc2168398a4ccfac50b128774190acdce96068b028f5beee01fe3d45ecd46d4664736f6c63430008140033",
									".code": [
										{
											"begin": 751,
											"end": 5769,
											"name": "PUSH",
											"source": 8,
											"value": "0"
										},
										{
											"begin": 751,
											"end": 5769,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 751,
											"end": 5769,
											"name": "REVERT",
											"source": 8
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC721/ERC721.sol": {
				"ERC721": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721IncorrectOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721InsufficientApproval",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "approver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidApprover",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOperator",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "ERC721InvalidSender",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721NonexistentToken",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "approved",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "ApprovalForAll",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "getApproved",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "isApprovedForAll",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "name",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ownerOf",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "setApprovalForAll",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "symbol",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "tokenURI",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.",
						"errors": {
							"ERC721IncorrectOwner(address,uint256,address)": [
								{
									"details": "Indicates an error related to the ownership over a particular token. Used in transfers.",
									"params": {
										"owner": "Address of the current owner of a token.",
										"sender": "Address whose tokens are being transferred.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InsufficientApproval(address,uint256)": [
								{
									"details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InvalidApprover(address)": [
								{
									"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
									"params": {
										"approver": "Address initiating an approval operation."
									}
								}
							],
							"ERC721InvalidOperator(address)": [
								{
									"details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							],
							"ERC721InvalidOwner(address)": [
								{
									"details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.",
									"params": {
										"owner": "Address of the current owner of a token."
									}
								}
							],
							"ERC721InvalidReceiver(address)": [
								{
									"details": "Indicates a failure with the token `receiver`. Used in transfers.",
									"params": {
										"receiver": "Address to which tokens are being transferred."
									}
								}
							],
							"ERC721InvalidSender(address)": [
								{
									"details": "Indicates a failure with the token `sender`. Used in transfers.",
									"params": {
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC721NonexistentToken(uint256)": [
								{
									"details": "Indicates a `tokenId` whose `owner` is the zero address.",
									"params": {
										"tokenId": "Identifier number of a token."
									}
								}
							]
						},
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
							},
							"ApprovalForAll(address,address,bool)": {
								"details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `tokenId` token is transferred from `from` to `to`."
							}
						},
						"kind": "dev",
						"methods": {
							"approve(address,uint256)": {
								"details": "See {IERC721-approve}."
							},
							"balanceOf(address)": {
								"details": "See {IERC721-balanceOf}."
							},
							"constructor": {
								"details": "Initializes the contract by setting a `name` and a `symbol` to the token collection."
							},
							"getApproved(uint256)": {
								"details": "See {IERC721-getApproved}."
							},
							"isApprovedForAll(address,address)": {
								"details": "See {IERC721-isApprovedForAll}."
							},
							"name()": {
								"details": "See {IERC721Metadata-name}."
							},
							"ownerOf(uint256)": {
								"details": "See {IERC721-ownerOf}."
							},
							"safeTransferFrom(address,address,uint256)": {
								"details": "See {IERC721-safeTransferFrom}."
							},
							"safeTransferFrom(address,address,uint256,bytes)": {
								"details": "See {IERC721-safeTransferFrom}."
							},
							"setApprovalForAll(address,bool)": {
								"details": "See {IERC721-setApprovalForAll}."
							},
							"supportsInterface(bytes4)": {
								"details": "See {IERC165-supportsInterface}."
							},
							"symbol()": {
								"details": "See {IERC721Metadata-symbol}."
							},
							"tokenURI(uint256)": {
								"details": "See {IERC721Metadata-tokenURI}."
							},
							"transferFrom(address,address,uint256)": {
								"details": "See {IERC721-transferFrom}."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"getApproved(uint256)": "081812fc",
							"isApprovedForAll(address,address)": "e985e9c5",
							"name()": "06fdde03",
							"ownerOf(uint256)": "6352211e",
							"safeTransferFrom(address,address,uint256)": "42842e0e",
							"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
							"setApprovalForAll(address,bool)": "a22cb465",
							"supportsInterface(bytes4)": "01ffc9a7",
							"symbol()": "95d89b41",
							"tokenURI(uint256)": "c87b56dd",
							"transferFrom(address,address,uint256)": "23b872dd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd14c8d95a432c755e0eb246b9728b7e923aa7ca1c6a0665f91ebab0d97792b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://600133d5cd233bd9e9e39ebbb063230700e808fe7c490ce26cae487edfb407b8\",\"dweb:/ipfs/QmT3W8bhVvStQA8GxpCRGVn6DTcjhnPoMaEvTJAFShP4FA\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 1166,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_name",
								"offset": 0,
								"slot": "0",
								"type": "t_string_storage"
							},
							{
								"astId": 1168,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_symbol",
								"offset": 0,
								"slot": "1",
								"type": "t_string_storage"
							},
							{
								"astId": 1172,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_owners",
								"offset": 0,
								"slot": "2",
								"type": "t_mapping(t_uint256,t_address)"
							},
							{
								"astId": 1176,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_balances",
								"offset": 0,
								"slot": "3",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 1180,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_tokenApprovals",
								"offset": 0,
								"slot": "4",
								"type": "t_mapping(t_uint256,t_address)"
							},
							{
								"astId": 1186,
								"contract": "@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721",
								"label": "_operatorApprovals",
								"offset": 0,
								"slot": "5",
								"type": "t_mapping(t_address,t_mapping(t_address,t_bool))"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_bool": {
								"encoding": "inplace",
								"label": "bool",
								"numberOfBytes": "1"
							},
							"t_mapping(t_address,t_bool)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => bool)",
								"numberOfBytes": "32",
								"value": "t_bool"
							},
							"t_mapping(t_address,t_mapping(t_address,t_bool))": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => mapping(address => bool))",
								"numberOfBytes": "32",
								"value": "t_mapping(t_address,t_bool)"
							},
							"t_mapping(t_address,t_uint256)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_mapping(t_uint256,t_address)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => address)",
								"numberOfBytes": "32",
								"value": "t_address"
							},
							"t_string_storage": {
								"encoding": "bytes",
								"label": "string",
								"numberOfBytes": "32"
							},
							"t_uint256": {
								"encoding": "inplace",
								"label": "uint256",
								"numberOfBytes": "32"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC721/IERC721.sol": {
				"IERC721": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "approved",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "ApprovalForAll",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "balance",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "getApproved",
							"outputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "isApprovedForAll",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ownerOf",
							"outputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "setApprovalForAll",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Required interface of an ERC721 compliant contract.",
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
							},
							"ApprovalForAll(address,address,bool)": {
								"details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `tokenId` token is transferred from `from` to `to`."
							}
						},
						"kind": "dev",
						"methods": {
							"approve(address,uint256)": {
								"details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."
							},
							"balanceOf(address)": {
								"details": "Returns the number of tokens in ``owner``'s account."
							},
							"getApproved(uint256)": {
								"details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."
							},
							"isApprovedForAll(address,address)": {
								"details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"
							},
							"ownerOf(uint256)": {
								"details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."
							},
							"safeTransferFrom(address,address,uint256)": {
								"details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event."
							},
							"safeTransferFrom(address,address,uint256,bytes)": {
								"details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event."
							},
							"setApprovalForAll(address,bool)": {
								"details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."
							},
							"supportsInterface(bytes4)": {
								"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
							},
							"transferFrom(address,address,uint256)": {
								"details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"getApproved(uint256)": "081812fc",
							"isApprovedForAll(address,address)": "e985e9c5",
							"ownerOf(uint256)": "6352211e",
							"safeTransferFrom(address,address,uint256)": "42842e0e",
							"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
							"setApprovalForAll(address,bool)": "a22cb465",
							"supportsInterface(bytes4)": "01ffc9a7",
							"transferFrom(address,address,uint256)": "23b872dd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
				"IERC721Receiver": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "onERC721Received",
							"outputs": [
								{
									"internalType": "bytes4",
									"name": "",
									"type": "bytes4"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.",
						"kind": "dev",
						"methods": {
							"onERC721Received(address,address,uint256,bytes)": {
								"details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."
							}
						},
						"title": "ERC721 token receiver interface",
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"onERC721Received(address,address,uint256,bytes)": "150b7a02"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
				"IERC721Metadata": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "approved",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "ApprovalForAll",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "balance",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "getApproved",
							"outputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "isApprovedForAll",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "name",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ownerOf",
							"outputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "setApprovalForAll",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "symbol",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "tokenURI",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "See https://eips.ethereum.org/EIPS/eip-721",
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
							},
							"ApprovalForAll(address,address,bool)": {
								"details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `tokenId` token is transferred from `from` to `to`."
							}
						},
						"kind": "dev",
						"methods": {
							"approve(address,uint256)": {
								"details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."
							},
							"balanceOf(address)": {
								"details": "Returns the number of tokens in ``owner``'s account."
							},
							"getApproved(uint256)": {
								"details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."
							},
							"isApprovedForAll(address,address)": {
								"details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"
							},
							"name()": {
								"details": "Returns the token collection name."
							},
							"ownerOf(uint256)": {
								"details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."
							},
							"safeTransferFrom(address,address,uint256)": {
								"details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event."
							},
							"safeTransferFrom(address,address,uint256,bytes)": {
								"details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event."
							},
							"setApprovalForAll(address,bool)": {
								"details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."
							},
							"supportsInterface(bytes4)": {
								"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
							},
							"symbol()": {
								"details": "Returns the token collection symbol."
							},
							"tokenURI(uint256)": {
								"details": "Returns the Uniform Resource Identifier (URI) for `tokenId` token."
							},
							"transferFrom(address,address,uint256)": {
								"details": "Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."
							}
						},
						"title": "ERC-721 Non-Fungible Token Standard, optional metadata extension",
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"getApproved(uint256)": "081812fc",
							"isApprovedForAll(address,address)": "e985e9c5",
							"name()": "06fdde03",
							"ownerOf(uint256)": "6352211e",
							"safeTransferFrom(address,address,uint256)": "42842e0e",
							"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
							"setApprovalForAll(address,bool)": "a22cb465",
							"supportsInterface(bytes4)": "01ffc9a7",
							"symbol()": "95d89b41",
							"tokenURI(uint256)": "c87b56dd",
							"transferFrom(address,address,uint256)": "23b872dd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/common/ERC2981.sol": {
				"ERC2981": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "numerator",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "denominator",
									"type": "uint256"
								}
							],
							"name": "ERC2981InvalidDefaultRoyalty",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC2981InvalidDefaultRoyaltyReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "numerator",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "denominator",
									"type": "uint256"
								}
							],
							"name": "ERC2981InvalidTokenRoyalty",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC2981InvalidTokenRoyaltyReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "salePrice",
									"type": "uint256"
								}
							],
							"name": "royaltyInfo",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information. Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first. Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the fee is specified in basis points by default. IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.",
						"errors": {
							"ERC2981InvalidDefaultRoyalty(uint256,uint256)": [
								{
									"details": "The default royalty set is invalid (eg. (numerator / denominator) >= 1)."
								}
							],
							"ERC2981InvalidDefaultRoyaltyReceiver(address)": [
								{
									"details": "The default royalty receiver is invalid."
								}
							],
							"ERC2981InvalidTokenRoyalty(uint256,uint256,uint256)": [
								{
									"details": "The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1)."
								}
							],
							"ERC2981InvalidTokenRoyaltyReceiver(uint256,address)": [
								{
									"details": "The royalty receiver for `tokenId` is invalid."
								}
							]
						},
						"kind": "dev",
						"methods": {
							"royaltyInfo(uint256,uint256)": {
								"details": "Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange."
							},
							"supportsInterface(bytes4)": {
								"details": "See {IERC165-supportsInterface}."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"royaltyInfo(uint256,uint256)": "2a55205a",
							"supportsInterface(bytes4)": "01ffc9a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"ERC2981InvalidDefaultRoyalty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC2981InvalidDefaultRoyaltyReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"ERC2981InvalidTokenRoyalty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC2981InvalidTokenRoyaltyReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information. Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first. Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the fee is specified in basis points by default. IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\",\"errors\":{\"ERC2981InvalidDefaultRoyalty(uint256,uint256)\":[{\"details\":\"The default royalty set is invalid (eg. (numerator / denominator) >= 1).\"}],\"ERC2981InvalidDefaultRoyaltyReceiver(address)\":[{\"details\":\"The default royalty receiver is invalid.\"}],\"ERC2981InvalidTokenRoyalty(uint256,uint256,uint256)\":[{\"details\":\"The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1).\"}],\"ERC2981InvalidTokenRoyaltyReceiver(uint256,address)\":[{\"details\":\"The royalty receiver for `tokenId` is invalid.\"}]},\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/common/ERC2981.sol\":\"ERC2981\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x89b84f7b1b2d6c294cd6b9a9f661c1cfb1b9b10ca7bac5b3445850a8ce96dcf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44f961aefa43a50c94d8b68e749235b2cf3bd1de18bf6f2e5e1c0fd9a59e06ea\",\"dweb:/ipfs/QmNzd2bnJidavPtt2hQ1em387T6W37n3kDx8WrneCZozxV\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x87e4eac873515f713e858d72150a7d2a69ddd531967e60a5d6ba77127db1fd54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0767e22e108183ebab97542c97bb95a619c96b4b6a7f59513c7320a501b1f355\",\"dweb:/ipfs/Qma2MBaEbZcutxkdrEUEayrV1FXQF1qLpYJGpGo49iGHux\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 2325,
								"contract": "@openzeppelin/contracts/token/common/ERC2981.sol:ERC2981",
								"label": "_defaultRoyaltyInfo",
								"offset": 0,
								"slot": "0",
								"type": "t_struct(RoyaltyInfo)2322_storage"
							},
							{
								"astId": 2330,
								"contract": "@openzeppelin/contracts/token/common/ERC2981.sol:ERC2981",
								"label": "_tokenRoyaltyInfo",
								"offset": 0,
								"slot": "1",
								"type": "t_mapping(t_uint256,t_struct(RoyaltyInfo)2322_storage)"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_mapping(t_uint256,t_struct(RoyaltyInfo)2322_storage)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => struct ERC2981.RoyaltyInfo)",
								"numberOfBytes": "32",
								"value": "t_struct(RoyaltyInfo)2322_storage"
							},
							"t_struct(RoyaltyInfo)2322_storage": {
								"encoding": "inplace",
								"label": "struct ERC2981.RoyaltyInfo",
								"members": [
									{
										"astId": 2319,
										"contract": "@openzeppelin/contracts/token/common/ERC2981.sol:ERC2981",
										"label": "receiver",
										"offset": 0,
										"slot": "0",
										"type": "t_address"
									},
									{
										"astId": 2321,
										"contract": "@openzeppelin/contracts/token/common/ERC2981.sol:ERC2981",
										"label": "royaltyFraction",
										"offset": 20,
										"slot": "0",
										"type": "t_uint96"
									}
								],
								"numberOfBytes": "32"
							},
							"t_uint256": {
								"encoding": "inplace",
								"label": "uint256",
								"numberOfBytes": "32"
							},
							"t_uint96": {
								"encoding": "inplace",
								"label": "uint96",
								"numberOfBytes": "12"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"Address": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "target",
									"type": "address"
								}
							],
							"name": "AddressEmptyCode",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "AddressInsufficientBalance",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "FailedInnerCall",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Collection of functions related to the address type",
						"errors": {
							"AddressEmptyCode(address)": [
								{
									"details": "There's no code at `target` (it is not a contract)."
								}
							],
							"AddressInsufficientBalance(address)": [
								{
									"details": "The ETH balance of the account is not enough to perform the operation."
								}
							],
							"FailedInnerCall()": [
								{
									"details": "A call to an address target failed. The target may have reverted."
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/Address.sol\":195:6261  library Address {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/Address.sol\":195:6261  library Address {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa264697066735822122021dfbbcf8a2f867bbd3462116b57f416c1c540a6ab21463ab132ef899eeefe6864736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122021dfbbcf8a2f867bbd3462116b57f416c1c540a6ab21463ab132ef899eeefe6864736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xDF 0xBB 0xCF DUP11 0x2F DUP7 PUSH28 0xBD3462116B57F416C1C540A6AB21463AB132EF899EEEFE6864736F6C PUSH4 0x43000814 STOP CALLER ",
							"sourceMap": "195:6066:14:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea264697066735822122021dfbbcf8a2f867bbd3462116b57f416c1c540a6ab21463ab132ef899eeefe6864736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xDF 0xBB 0xCF DUP11 0x2F DUP7 PUSH28 0xBD3462116B57F416C1C540A6AB21463AB132EF899EEEFE6864736F6C PUSH4 0x43000814 STOP CALLER ",
							"sourceMap": "195:6066:14:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"_revert(bytes memory)": "infinite",
								"functionCall(address,bytes memory)": "infinite",
								"functionCallWithValue(address,bytes memory,uint256)": "infinite",
								"functionDelegateCall(address,bytes memory)": "infinite",
								"functionStaticCall(address,bytes memory)": "infinite",
								"sendValue(address payable,uint256)": "infinite",
								"verifyCallResult(bool,bytes memory)": "infinite",
								"verifyCallResultFromTarget(address,bool,bytes memory)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH",
									"source": 14,
									"value": "80"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "DUP1",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH",
									"source": 14,
									"value": "40"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "MSTORE",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "CALLVALUE",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH [tag]",
									"source": 14,
									"value": "1"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "JUMPI",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH #[$]",
									"source": 14,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "SWAP1",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "DUP2",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH [$]",
									"source": 14,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "DUP3",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "CODECOPY",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "ADDRESS",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "DUP2",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "ASSIGNIMMUTABLE",
									"source": 14,
									"value": "library_deploy_address"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "RETURN",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "tag",
									"source": 14,
									"value": "1"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "JUMPDEST",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "PUSH",
									"source": 14,
									"value": "0"
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "DUP1",
									"source": 14
								},
								{
									"begin": 195,
									"end": 6261,
									"name": "REVERT",
									"source": 14
								}
							],
							".data": {
								"0": {
									".auxdata": "a264697066735822122021dfbbcf8a2f867bbd3462116b57f416c1c540a6ab21463ab132ef899eeefe6864736f6c63430008140033",
									".code": [
										{
											"begin": 195,
											"end": 6261,
											"name": "PUSH",
											"source": 14,
											"value": "0"
										},
										{
											"begin": 195,
											"end": 6261,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 195,
											"end": 6261,
											"name": "REVERT",
											"source": 14
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/Base64.sol": {
				"Base64": {
					"abi": [],
					"devdoc": {
						"details": "Provides a set of functions to operate with Base64 strings.",
						"kind": "dev",
						"methods": {},
						"stateVariables": {
							"_TABLE": {
								"details": "Base64 Encoding/Decoding Table"
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/Base64.sol\":202:3504  library Base64 {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/Base64.sol\":202:3504  library Base64 {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220909bc6748da52f1294c54a6785bfc7df01324a25b24430a759a9c10890ee0c7a64736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220909bc6748da52f1294c54a6785bfc7df01324a25b24430a759a9c10890ee0c7a64736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 SWAP12 0xC6 PUSH21 0x8DA52F1294C54A6785BFC7DF01324A25B24430A759 0xA9 0xC1 ADDMOD SWAP1 0xEE 0xC PUSH27 0x64736F6C6343000814003300000000000000000000000000000000 ",
							"sourceMap": "202:3302:15:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea2646970667358221220909bc6748da52f1294c54a6785bfc7df01324a25b24430a759a9c10890ee0c7a64736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 SWAP12 0xC6 PUSH21 0x8DA52F1294C54A6785BFC7DF01324A25B24430A759 0xA9 0xC1 ADDMOD SWAP1 0xEE 0xC PUSH27 0x64736F6C6343000814003300000000000000000000000000000000 ",
							"sourceMap": "202:3302:15:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"encode(bytes memory)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH",
									"source": 15,
									"value": "80"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "DUP1",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH",
									"source": 15,
									"value": "40"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "MSTORE",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "CALLVALUE",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH [tag]",
									"source": 15,
									"value": "1"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "JUMPI",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH #[$]",
									"source": 15,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "SWAP1",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "DUP2",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH [$]",
									"source": 15,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "DUP3",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "CODECOPY",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "ADDRESS",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "DUP2",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "ASSIGNIMMUTABLE",
									"source": 15,
									"value": "library_deploy_address"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "RETURN",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "tag",
									"source": 15,
									"value": "1"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "JUMPDEST",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "PUSH",
									"source": 15,
									"value": "0"
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "DUP1",
									"source": 15
								},
								{
									"begin": 202,
									"end": 3504,
									"name": "REVERT",
									"source": 15
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220909bc6748da52f1294c54a6785bfc7df01324a25b24430a759a9c10890ee0c7a64736f6c63430008140033",
									".code": [
										{
											"begin": 202,
											"end": 3504,
											"name": "PUSH",
											"source": 15,
											"value": "0"
										},
										{
											"begin": 202,
											"end": 3504,
											"name": "DUP1",
											"source": 15
										},
										{
											"begin": 202,
											"end": 3504,
											"name": "REVERT",
											"source": 15
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to operate with Base64 strings.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_TABLE\":{\"details\":\"Base64 Encoding/Decoding Table\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Base64.sol\":\"Base64\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x6f7014d688c4386c26e8c02371ecb7f7740d2542f1ecadffd5a3084511e2a344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81d8f5aabdb088f19c80ce460a2e670ecc651ff4ca46878d239e29bfe705e52c\",\"dweb:/ipfs/QmUveDGa7vEtYBxbVUajNcDvyjP6oaD7Va1M5qwZbudmAn\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/Context.sol": {
				"Context": {
					"abi": [],
					"devdoc": {
						"details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.",
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/Strings.sol": {
				"Strings": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "length",
									"type": "uint256"
								}
							],
							"name": "StringsInsufficientHexLength",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "String operations.",
						"errors": {
							"StringsInsufficientHexLength(uint256,uint256)": [
								{
									"details": "The `value` string doesn't fit in the specified `length`."
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/Strings.sol\":251:3098  library Strings {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":251:3098  library Strings {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa26469706673582212202d24ce46581547f340a1ec46d04b470d7d73149af6e02dd9b321cfc8b5a2aac464736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212202d24ce46581547f340a1ec46d04b470d7d73149af6e02dd9b321cfc8b5a2aac464736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x24 0xCE CHAINID PC ISZERO SELFBALANCE RETURN BLOCKHASH LOG1 0xEC CHAINID 0xD0 0x4B SELFBALANCE 0xD PUSH30 0x73149AF6E02DD9B321CFC8B5A2AAC464736F6C6343000814003300000000 ",
							"sourceMap": "251:2847:17:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea26469706673582212202d24ce46581547f340a1ec46d04b470d7d73149af6e02dd9b321cfc8b5a2aac464736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x24 0xCE CHAINID PC ISZERO SELFBALANCE RETURN BLOCKHASH LOG1 0xEC CHAINID 0xD0 0x4B SELFBALANCE 0xD PUSH30 0x73149AF6E02DD9B321CFC8B5A2AAC464736F6C6343000814003300000000 ",
							"sourceMap": "251:2847:17:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"equal(string memory,string memory)": "infinite",
								"toHexString(address)": "infinite",
								"toHexString(uint256)": "infinite",
								"toHexString(uint256,uint256)": "infinite",
								"toString(uint256)": "infinite",
								"toStringSigned(int256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH",
									"source": 17,
									"value": "80"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "DUP1",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH",
									"source": 17,
									"value": "40"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "MSTORE",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "CALLVALUE",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH [tag]",
									"source": 17,
									"value": "1"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "JUMPI",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH #[$]",
									"source": 17,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "SWAP1",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "DUP2",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH [$]",
									"source": 17,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "DUP3",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "CODECOPY",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "ADDRESS",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "DUP2",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "ASSIGNIMMUTABLE",
									"source": 17,
									"value": "library_deploy_address"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "RETURN",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "tag",
									"source": 17,
									"value": "1"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "JUMPDEST",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "PUSH",
									"source": 17,
									"value": "0"
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "DUP1",
									"source": 17
								},
								{
									"begin": 251,
									"end": 3098,
									"name": "REVERT",
									"source": 17
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212202d24ce46581547f340a1ec46d04b470d7d73149af6e02dd9b321cfc8b5a2aac464736f6c63430008140033",
									".code": [
										{
											"begin": 251,
											"end": 3098,
											"name": "PUSH",
											"source": 17,
											"value": "0"
										},
										{
											"begin": 251,
											"end": 3098,
											"name": "DUP1",
											"source": 17
										},
										{
											"begin": 251,
											"end": 3098,
											"name": "REVERT",
											"source": 17
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/introspection/ERC165.sol": {
				"ERC165": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```",
						"kind": "dev",
						"methods": {
							"supportsInterface(bytes4)": {
								"details": "See {IERC165-supportsInterface}."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"supportsInterface(bytes4)": "01ffc9a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/introspection/IERC165.sol": {
				"IERC165": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.",
						"kind": "dev",
						"methods": {
							"supportsInterface(bytes4)": {
								"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"supportsInterface(bytes4)": "01ffc9a7"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/math/Math.sol": {
				"Math": {
					"abi": [
						{
							"inputs": [],
							"name": "MathOverflowedMulDiv",
							"type": "error"
						}
					],
					"devdoc": {
						"details": "Standard math utilities missing in the Solidity language.",
						"errors": {
							"MathOverflowedMulDiv()": [
								{
									"details": "Muldiv operation overflow."
								}
							]
						},
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/math/Math.sol\":203:15117  library Math {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":203:15117  library Math {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220d8df9d858f00045c2449ad18f36e2492754df56bd3cca94c12d4398de3131a4e64736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220d8df9d858f00045c2449ad18f36e2492754df56bd3cca94c12d4398de3131a4e64736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 0xDF SWAP14 DUP6 DUP16 STOP DIV 0x5C 0x24 0x49 0xAD XOR RETURN PUSH15 0x2492754DF56BD3CCA94C12D4398DE3 SGT BYTE 0x4E PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "203:14914:20:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea2646970667358221220d8df9d858f00045c2449ad18f36e2492754df56bd3cca94c12d4398de3131a4e64736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD8 0xDF SWAP14 DUP6 DUP16 STOP DIV 0x5C 0x24 0x49 0xAD XOR RETURN PUSH15 0x2492754DF56BD3CCA94C12D4398DE3 SGT BYTE 0x4E PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "203:14914:20:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"average(uint256,uint256)": "infinite",
								"ceilDiv(uint256,uint256)": "infinite",
								"log10(uint256)": "infinite",
								"log10(uint256,enum Math.Rounding)": "infinite",
								"log2(uint256)": "infinite",
								"log2(uint256,enum Math.Rounding)": "infinite",
								"log256(uint256)": "infinite",
								"log256(uint256,enum Math.Rounding)": "infinite",
								"max(uint256,uint256)": "infinite",
								"min(uint256,uint256)": "infinite",
								"mulDiv(uint256,uint256,uint256)": "infinite",
								"mulDiv(uint256,uint256,uint256,enum Math.Rounding)": "infinite",
								"sqrt(uint256)": "infinite",
								"sqrt(uint256,enum Math.Rounding)": "infinite",
								"tryAdd(uint256,uint256)": "infinite",
								"tryDiv(uint256,uint256)": "infinite",
								"tryMod(uint256,uint256)": "infinite",
								"tryMul(uint256,uint256)": "infinite",
								"trySub(uint256,uint256)": "infinite",
								"unsignedRoundsUp(enum Math.Rounding)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH",
									"source": 20,
									"value": "80"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "DUP1",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH",
									"source": 20,
									"value": "40"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "MSTORE",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "CALLVALUE",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH [tag]",
									"source": 20,
									"value": "1"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "JUMPI",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH #[$]",
									"source": 20,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "SWAP1",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "DUP2",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH [$]",
									"source": 20,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "DUP3",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "CODECOPY",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "ADDRESS",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "DUP2",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "ASSIGNIMMUTABLE",
									"source": 20,
									"value": "library_deploy_address"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "RETURN",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "tag",
									"source": 20,
									"value": "1"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "JUMPDEST",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "PUSH",
									"source": 20,
									"value": "0"
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "DUP1",
									"source": 20
								},
								{
									"begin": 203,
									"end": 15117,
									"name": "REVERT",
									"source": 20
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220d8df9d858f00045c2449ad18f36e2492754df56bd3cca94c12d4398de3131a4e64736f6c63430008140033",
									".code": [
										{
											"begin": 203,
											"end": 15117,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 203,
											"end": 15117,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 203,
											"end": 15117,
											"name": "REVERT",
											"source": 20
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/math/SignedMath.sol": {
				"SignedMath": {
					"abi": [],
					"devdoc": {
						"details": "Standard signed math utilities missing in the Solidity language.",
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/math/SignedMath.sol\":216:1263  library SignedMath {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/math/SignedMath.sol\":216:1263  library SignedMath {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220eb654abe699fba3911d945c9221a2dbeb8ac6a6a6093e52903739081a678563964736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220eb654abe699fba3911d945c9221a2dbeb8ac6a6a6093e52903739081a678563964736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB PUSH6 0x4ABE699FBA39 GT 0xD9 GASLIMIT 0xC9 0x22 BYTE 0x2D 0xBE 0xB8 0xAC PUSH11 0x6A6093E52903739081A678 JUMP CODECOPY PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "216:1047:21:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea2646970667358221220eb654abe699fba3911d945c9221a2dbeb8ac6a6a6093e52903739081a678563964736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB PUSH6 0x4ABE699FBA39 GT 0xD9 GASLIMIT 0xC9 0x22 BYTE 0x2D 0xBE 0xB8 0xAC PUSH11 0x6A6093E52903739081A678 JUMP CODECOPY PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "216:1047:21:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"abs(int256)": "infinite",
								"average(int256,int256)": "infinite",
								"max(int256,int256)": "infinite",
								"min(int256,int256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH",
									"source": 21,
									"value": "80"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "DUP1",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH",
									"source": 21,
									"value": "40"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "MSTORE",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "CALLVALUE",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH [tag]",
									"source": 21,
									"value": "1"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "JUMPI",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH #[$]",
									"source": 21,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "SWAP1",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "DUP2",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH [$]",
									"source": 21,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "DUP3",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "CODECOPY",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "ADDRESS",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "DUP2",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "ASSIGNIMMUTABLE",
									"source": 21,
									"value": "library_deploy_address"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "RETURN",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "tag",
									"source": 21,
									"value": "1"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "JUMPDEST",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "PUSH",
									"source": 21,
									"value": "0"
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "DUP1",
									"source": 21
								},
								{
									"begin": 216,
									"end": 1263,
									"name": "REVERT",
									"source": 21
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220eb654abe699fba3911d945c9221a2dbeb8ac6a6a6093e52903739081a678563964736f6c63430008140033",
									".code": [
										{
											"begin": 216,
											"end": 1263,
											"name": "PUSH",
											"source": 21,
											"value": "0"
										},
										{
											"begin": 216,
											"end": 1263,
											"name": "DUP1",
											"source": 21
										},
										{
											"begin": 216,
											"end": 1263,
											"name": "REVERT",
											"source": 21
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"abdk-libraries-solidity/ABDKMathQuad.sol": {
				"ABDKMathQuad": {
					"abi": [],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":486:52747  library ABDKMathQuad {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":486:52747  library ABDKMathQuad {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa264697066735822122012b9362997bd75c3e3551c9fbef025a05a2d1d19df5179b52994a364edcee45e64736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122012b9362997bd75c3e3551c9fbef025a05a2d1d19df5179b52994a364edcee45e64736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLT 0xB9 CALLDATASIZE 0x29 SWAP8 0xBD PUSH22 0xC3E3551C9FBEF025A05A2D1D19DF5179B52994A364ED 0xCE 0xE4 0x5E PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "486:52261:22:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea264697066735822122012b9362997bd75c3e3551c9fbef025a05a2d1d19df5179b52994a364edcee45e64736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLT 0xB9 CALLDATASIZE 0x29 SWAP8 0xBD PUSH22 0xC3E3551C9FBEF025A05A2D1D19DF5179B52994A364ED 0xCE 0xE4 0x5E PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "486:52261:22:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"internal": {
								"abs(bytes16)": "infinite",
								"add(bytes16,bytes16)": "infinite",
								"cmp(bytes16,bytes16)": "infinite",
								"div(bytes16,bytes16)": "infinite",
								"eq(bytes16,bytes16)": "infinite",
								"exp(bytes16)": "infinite",
								"from128x128(int256)": "infinite",
								"from64x64(int128)": "infinite",
								"fromDouble(bytes8)": "infinite",
								"fromInt(int256)": "infinite",
								"fromOctuple(bytes32)": "infinite",
								"fromUInt(uint256)": "infinite",
								"isInfinity(bytes16)": "infinite",
								"isNaN(bytes16)": "infinite",
								"ln(bytes16)": "infinite",
								"log_2(bytes16)": "infinite",
								"mostSignificantBit(uint256)": "infinite",
								"mul(bytes16,bytes16)": "infinite",
								"neg(bytes16)": "infinite",
								"pow_2(bytes16)": "infinite",
								"sign(bytes16)": "infinite",
								"sqrt(bytes16)": "infinite",
								"sub(bytes16,bytes16)": "infinite",
								"to128x128(bytes16)": "infinite",
								"to64x64(bytes16)": "infinite",
								"toDouble(bytes16)": "infinite",
								"toInt(bytes16)": "infinite",
								"toOctuple(bytes16)": "infinite",
								"toUInt(bytes16)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH",
									"source": 22,
									"value": "80"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "DUP1",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH",
									"source": 22,
									"value": "40"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "MSTORE",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "CALLVALUE",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH [tag]",
									"source": 22,
									"value": "1"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "JUMPI",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH #[$]",
									"source": 22,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "SWAP1",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "DUP2",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH [$]",
									"source": 22,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "DUP3",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "CODECOPY",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "ADDRESS",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "DUP2",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "ASSIGNIMMUTABLE",
									"source": 22,
									"value": "library_deploy_address"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "RETURN",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "tag",
									"source": 22,
									"value": "1"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "JUMPDEST",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "PUSH",
									"source": 22,
									"value": "0"
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "DUP1",
									"source": 22
								},
								{
									"begin": 486,
									"end": 52747,
									"name": "REVERT",
									"source": 22
								}
							],
							".data": {
								"0": {
									".auxdata": "a264697066735822122012b9362997bd75c3e3551c9fbef025a05a2d1d19df5179b52994a364edcee45e64736f6c63430008140033",
									".code": [
										{
											"begin": 486,
											"end": 52747,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 486,
											"end": 52747,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 486,
											"end": 52747,
											"name": "REVERT",
											"source": 22
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Smart contract library of mathematical functions operating with IEEE 754 quadruple-precision binary floating-point numbers (quadruple precision numbers).  As long as quadruple precision numbers are 16-bytes long, they are represented by bytes16 type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"abdk-libraries-solidity/ABDKMathQuad.sol\":\"ABDKMathQuad\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"abdk-libraries-solidity/ABDKMathQuad.sol\":{\"keccak256\":\"0x9694a9f6fcadd4fa917efa674de42a74b8fbab8d68924f771ea5cc5e1a301434\",\"license\":\"BSD-4-Clause\",\"urls\":[\"bzz-raw://5ab2de42e1d920443704dcc9e1de76157dd1df38cf770e76f879c7a6cc93b796\",\"dweb:/ipfs/QmXLxE4cJDph4EtVhsCP4aik5PLFauFABv2o4ea47iDwDo\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"notice": "Smart contract library of mathematical functions operating with IEEE 754 quadruple-precision binary floating-point numbers (quadruple precision numbers).  As long as quadruple precision numbers are 16-bytes long, they are represented by bytes16 type.",
						"version": 1
					}
				}
			},
			"contracts/TicketContract.sol": {
				"TicketContract": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "initialOwner",
									"type": "address"
								},
								{
									"internalType": "address[]",
									"name": "_admins",
									"type": "address[]"
								},
								{
									"internalType": "address",
									"name": "_tixSellpaymentSplitter",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_organizerEventPaymentSplitter",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_resellPaiementSplitter",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_dataFeedEURUSD",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_eventContract",
									"type": "address"
								},
								{
									"internalType": "string",
									"name": "_eventName",
									"type": "string"
								},
								{
									"internalType": "address",
									"name": "_nftTemplateContract",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_ticketReservationFactoryAddress",
									"type": "address"
								},
								{
									"internalType": "uint96",
									"name": "royalty",
									"type": "uint96"
								}
							],
							"stateMutability": "nonpayable",
							"type": "constructor"
						},
						{
							"inputs": [],
							"name": "AccessControlBadConfirmation",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "neededRole",
									"type": "bytes32"
								}
							],
							"name": "AccessControlUnauthorizedAccount",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "numerator",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "denominator",
									"type": "uint256"
								}
							],
							"name": "ERC2981InvalidDefaultRoyalty",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC2981InvalidDefaultRoyaltyReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "numerator",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "denominator",
									"type": "uint256"
								}
							],
							"name": "ERC2981InvalidTokenRoyalty",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC2981InvalidTokenRoyaltyReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721IncorrectOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721InsufficientApproval",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "approver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidApprover",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOperator",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "ERC721InvalidOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "receiver",
									"type": "address"
								}
							],
							"name": "ERC721InvalidReceiver",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "ERC721InvalidSender",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ERC721NonexistentToken",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "OwnableInvalidOwner",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "OwnableUnauthorizedAccount",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "approved",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "ApprovalForAll",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "ticketTypeId",
									"type": "uint256"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "ticketId",
									"type": "uint256"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "NewTicket",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "previousOwner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "newOwner",
									"type": "address"
								}
							],
							"name": "OwnershipTransferred",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "previousAdminRole",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "newAdminRole",
									"type": "bytes32"
								}
							],
							"name": "RoleAdminChanged",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleGranted",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "sender",
									"type": "address"
								}
							],
							"name": "RoleRevoked",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [],
							"name": "ADMIN_ROLE",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"name": "AllowedCrypto",
							"outputs": [
								{
									"internalType": "contract IERC20",
									"name": "paytoken",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "exists",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "DEFAULT_ADMIN_ROLE",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "_paytoken",
									"type": "address"
								}
							],
							"name": "addCurrency",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationId",
									"type": "string"
								},
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "_withERC20",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "_cryptoId",
									"type": "uint256"
								}
							],
							"name": "buyTicket",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationNumber",
									"type": "string"
								},
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_amount",
									"type": "uint256"
								}
							],
							"name": "createReservation",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "eventContract",
							"outputs": [
								{
									"internalType": "contract IEventContract",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_fan",
									"type": "address"
								}
							],
							"name": "fetchTicketsForOwner",
							"outputs": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "ticketId",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "ticketTypeId",
											"type": "uint256"
										},
										{
											"internalType": "address",
											"name": "owner",
											"type": "address"
										},
										{
											"internalType": "bytes32",
											"name": "hashedTicket",
											"type": "bytes32"
										},
										{
											"internalType": "uint256",
											"name": "pricePaid",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "purchasedDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "used",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "exists",
											"type": "bool"
										}
									],
									"internalType": "struct TicketContract.Ticket[]",
									"name": "",
									"type": "tuple[]"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "getApproved",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getBalance",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getEventContract",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getLatestData",
							"outputs": [
								{
									"internalType": "int256",
									"name": "",
									"type": "int256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getLatestDataMaticUsd",
							"outputs": [
								{
									"internalType": "int256",
									"name": "",
									"type": "int256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getResellPaymentSplitter",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								}
							],
							"name": "getRoleAdmin",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_tokenId",
									"type": "uint256"
								}
							],
							"name": "getTicketTypesForTicket",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getTotalTicketsSold",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "grantRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "hasRole",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								}
							],
							"name": "isApprovedForAll",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationId",
									"type": "string"
								},
								{
									"internalType": "address",
									"name": "_to",
									"type": "address"
								}
							],
							"name": "mintTicket",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "ticketTypeId",
									"type": "uint256"
								}
							],
							"name": "mintTicketAdmin",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "x",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "y",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "z",
									"type": "uint256"
								}
							],
							"name": "mulDiv",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "pure",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "name",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"name": "nbTicketForUserAndTicketTypes",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "organizerPaymentSplitter",
							"outputs": [
								{
									"internalType": "address payable",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "owner",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "ownerOf",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "renounceOwnership",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "callerConfirmation",
									"type": "address"
								}
							],
							"name": "renounceRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "resellPaiementSplitter",
							"outputs": [
								{
									"internalType": "address payable",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes32",
									"name": "role",
									"type": "bytes32"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "revokeRole",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "salePrice",
									"type": "uint256"
								}
							],
							"name": "royaltyInfo",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "data",
									"type": "bytes"
								}
							],
							"name": "safeTransferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "operator",
									"type": "address"
								},
								{
									"internalType": "bool",
									"name": "approved",
									"type": "bool"
								}
							],
							"name": "setApprovalForAll",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint96",
									"name": "_newroyalty",
									"type": "uint96"
								}
							],
							"name": "setRoyalty",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_tokenId",
									"type": "uint256"
								},
								{
									"internalType": "string",
									"name": "_uri",
									"type": "string"
								}
							],
							"name": "setTicketURI",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "bytes4",
									"name": "interfaceId",
									"type": "bytes4"
								}
							],
							"name": "supportsInterface",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "symbol",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "ticketReservationContract",
							"outputs": [
								{
									"internalType": "contract ITicketReservationContract",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"name": "ticketSpecificUri",
							"outputs": [
								{
									"internalType": "string",
									"name": "",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"name": "ticketTypesForTicket",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"name": "tickets",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "ticketId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "hashedTicket",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "pricePaid",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "purchasedDate",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "used",
									"type": "bool"
								},
								{
									"internalType": "bool",
									"name": "exists",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "tixSellpaymentSplitter",
							"outputs": [
								{
									"internalType": "address payable",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_tokenId",
									"type": "uint256"
								}
							],
							"name": "tokenURI",
							"outputs": [
								{
									"internalType": "string",
									"name": "uri",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "tokenId",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "newOwner",
									"type": "address"
								}
							],
							"name": "transferOwnership",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "withdraw",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"errors": {
							"AccessControlBadConfirmation()": [
								{
									"details": "The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
								}
							],
							"AccessControlUnauthorizedAccount(address,bytes32)": [
								{
									"details": "The `account` is missing a role."
								}
							],
							"ERC2981InvalidDefaultRoyalty(uint256,uint256)": [
								{
									"details": "The default royalty set is invalid (eg. (numerator / denominator) >= 1)."
								}
							],
							"ERC2981InvalidDefaultRoyaltyReceiver(address)": [
								{
									"details": "The default royalty receiver is invalid."
								}
							],
							"ERC2981InvalidTokenRoyalty(uint256,uint256,uint256)": [
								{
									"details": "The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1)."
								}
							],
							"ERC2981InvalidTokenRoyaltyReceiver(uint256,address)": [
								{
									"details": "The royalty receiver for `tokenId` is invalid."
								}
							],
							"ERC721IncorrectOwner(address,uint256,address)": [
								{
									"details": "Indicates an error related to the ownership over a particular token. Used in transfers.",
									"params": {
										"owner": "Address of the current owner of a token.",
										"sender": "Address whose tokens are being transferred.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InsufficientApproval(address,uint256)": [
								{
									"details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner.",
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"ERC721InvalidApprover(address)": [
								{
									"details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
									"params": {
										"approver": "Address initiating an approval operation."
									}
								}
							],
							"ERC721InvalidOperator(address)": [
								{
									"details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
									"params": {
										"operator": "Address that may be allowed to operate on tokens without being their owner."
									}
								}
							],
							"ERC721InvalidOwner(address)": [
								{
									"details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.",
									"params": {
										"owner": "Address of the current owner of a token."
									}
								}
							],
							"ERC721InvalidReceiver(address)": [
								{
									"details": "Indicates a failure with the token `receiver`. Used in transfers.",
									"params": {
										"receiver": "Address to which tokens are being transferred."
									}
								}
							],
							"ERC721InvalidSender(address)": [
								{
									"details": "Indicates a failure with the token `sender`. Used in transfers.",
									"params": {
										"sender": "Address whose tokens are being transferred."
									}
								}
							],
							"ERC721NonexistentToken(uint256)": [
								{
									"details": "Indicates a `tokenId` whose `owner` is the zero address.",
									"params": {
										"tokenId": "Identifier number of a token."
									}
								}
							],
							"OwnableInvalidOwner(address)": [
								{
									"details": "The owner is not a valid owner account. (eg. `address(0)`)"
								}
							],
							"OwnableUnauthorizedAccount(address)": [
								{
									"details": "The caller account is not authorized to perform an operation."
								}
							]
						},
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
							},
							"ApprovalForAll(address,address,bool)": {
								"details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
							},
							"RoleAdminChanged(bytes32,bytes32,bytes32)": {
								"details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this."
							},
							"RoleGranted(bytes32,address,address)": {
								"details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
							},
							"RoleRevoked(bytes32,address,address)": {
								"details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `tokenId` token is transferred from `from` to `to`."
							}
						},
						"kind": "dev",
						"methods": {
							"approve(address,uint256)": {
								"details": "See {IERC721-approve}."
							},
							"balanceOf(address)": {
								"details": "See {IERC721-balanceOf}."
							},
							"getApproved(uint256)": {
								"details": "See {IERC721-getApproved}."
							},
							"getRoleAdmin(bytes32)": {
								"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
							},
							"grantRole(bytes32,address)": {
								"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
							},
							"hasRole(bytes32,address)": {
								"details": "Returns `true` if `account` has been granted `role`."
							},
							"isApprovedForAll(address,address)": {
								"details": "See {IERC721-isApprovedForAll}."
							},
							"name()": {
								"details": "See {IERC721Metadata-name}."
							},
							"owner()": {
								"details": "Returns the address of the current owner."
							},
							"ownerOf(uint256)": {
								"details": "See {IERC721-ownerOf}."
							},
							"renounceOwnership()": {
								"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
							},
							"renounceRole(bytes32,address)": {
								"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."
							},
							"revokeRole(bytes32,address)": {
								"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
							},
							"royaltyInfo(uint256,uint256)": {
								"details": "Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange."
							},
							"safeTransferFrom(address,address,uint256)": {
								"details": "See {IERC721-safeTransferFrom}."
							},
							"safeTransferFrom(address,address,uint256,bytes)": {
								"details": "See {IERC721-safeTransferFrom}."
							},
							"setApprovalForAll(address,bool)": {
								"details": "See {IERC721-setApprovalForAll}."
							},
							"symbol()": {
								"details": "See {IERC721Metadata-symbol}."
							},
							"transferFrom(address,address,uint256)": {
								"details": "See {IERC721-transferFrom}."
							},
							"transferOwnership(address)": {
								"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore(0x40, 0x80)\n  jumpi(tag_43, callvalue)\n  bytecodeSize\n  dup1\n  codesize\n  sub\n  dup1\n  swap2\n  tag_10\n  dup3\n  0x80\n  tag_2\n  jump\t// in\ntag_10:\n  0x80\n  codecopy\n  0x0160\n  dup2\n  slt\n  tag_43\n  jumpi\n  tag_13\n  0x80\n  tag_3\n  jump\t// in\ntag_13:\n  mload(0xa0)\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  tag_43\n  jumpi\n  0x80\n  add\n  swap2\n  dup1\n  0x80\n  add\n  0x1f\n  dup5\n  add\n  slt\n  iszero\n  tag_43\n  jumpi\n  dup3\n  mload\n  swap2\n  sub(shl(0x40, 0x01), 0x01)\n  dup4\n  gt\n  tag_92\n  jumpi\n  dup3\n  0x05\n  shl\n  swap4\n  mload(0x40)\n  swap4\n  tag_20\n  0x20\n  dup8\n  add\n  dup7\n  tag_2\n  jump\t// in\ntag_20:\n  dup5\n  mstore\n  0x20\n  dup5\n  add\n  0x20\n  dup2\n  swap7\n  dup4\n  add\n  add\n  swap2\n  dup5\n  0x80\n  add\n  dup4\n  gt\n  tag_43\n  jumpi\n  0x20\n  add\n  swap1\ntag_23:\n  dup3\n  dup3\n  lt\n  tag_24\n  jumpi\n  pop\n  pop\n  pop\n  tag_26\n  add(0x80, 0x40)\n  tag_3\n  jump\t// in\ntag_26:\n  swap4\n  tag_27\n  0xe0\n  tag_3\n  jump\t// in\ntag_27:\n  swap5\n  tag_28\n  0x0100\n  tag_3\n  jump\t// in\ntag_28:\n  swap6\n  tag_29\n  0x0120\n  tag_3\n  jump\t// in\ntag_29:\n  tag_30\n  0x0140\n  tag_3\n  jump\t// in\ntag_30:\n  mload(0x0160)\n  swap1\n  swap3\n  swap1\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  tag_43\n  jumpi\n  0x80\n  dup9\n  add\n  0x9f\n  dup3\n  add\n  slt\n  iszero\n  tag_43\n  jumpi\n  0x80\n  dup2\n  add\n  mload\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  tag_92\n  jumpi\n  mload(0x40)\n  swap9\n  tag_37\n  0x1f\n  dup4\n  add\n  not(0x1f)\n  and\n  0x20\n  add\n  dup12\n  tag_2\n  jump\t// in\ntag_37:\n  dup2\n  dup11\n  mstore\n  0x80\n  add\n  0xa0\n  dup4\n  dup4\n  add\n  add\n  gt\n  tag_43\n  jumpi\n  tag_40\n  swap2\n  0x20\n  dup11\n  add\n  swap1\n  0xa0\n  add\n  tag_4\n  jump\t// in\ntag_40:\n  tag_41\n  0x0180\n  tag_3\n  jump\t// in\ntag_41:\n  swap4\n  tag_42\n  0x01a0\n  tag_3\n  jump\t// in\ntag_42:\n  mload(0x01c0)\n  swap9\n  swap1\n  swap8\n  swap1\n  sub(shl(0x60, 0x01), 0x01)\n  dup11\n  and\n  dup11\n  sub\n  tag_43\n  jumpi\n  mload(0x40)\n  tag_45\n  0x2b\n  dup3\n  dup5\n  mload\n  tag_46\n  dup2\n  0x20\n  dup5\n  add\n  0x20\n  dup10\n  add\n  tag_4\n  jump\t// in\ntag_46:\n  dup2\n  add\n  shl(0xab, 0x040c4f240a6cad8d8a8d2f)\n  0x20\n  dup3\n  add\n  mstore\n  sub\n  0x0b\n  dup2\n  add\n  dup5\n  mstore\n  add\n  dup3\n  tag_2\n  jump\t// in\ntag_45:\n  tag_47\n  0x2f\n  mload(0x40)\n  dup5\n  tag_48\n  dup3\n  swap7\n  mload\n  dup1\n  swap3\n  0x20\n  dup1\n  dup7\n  add\n  swap2\n  add\n  tag_4\n  jump\t// in\ntag_48:\n  dup2\n  add\n  shl(0x88, 0x2053656c6c5469785469636b657473)\n  0x20\n  dup3\n  add\n  mstore\n  sub\n  0x0f\n  dup2\n  add\n  dup6\n  mstore\n  add\n  dup4\n  tag_2\n  jump\t// in\ntag_47:\n  dup1\n  mload\n  swap1\n  sub(shl(0x40, 0x01), 0x01)\n  dup3\n  gt\n  tag_92\n  jumpi\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1451:1464  _name = name_ */\n  0x02\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sload\n  swap1\n  0x01\n  dup3\n  dup2\n  shr\n  swap3\n  and\n  dup1\n  iszero\n  tag_51\n  jumpi\ntag_52:\n  0x20\n  dup4\n  lt\n  eq\n  tag_66\n  jumpi\n  dup2\n  0x1f\n  dup5\n  swap4\n  gt\n  tag_55\n  jumpi\ntag_56:\n  pop\n  0x20\n  swap1\n  0x1f\n  dup4\n  gt\n  0x01\n  eq\n  tag_57\n  jumpi\n  0x00\n  swap3\n  tag_59\n  jumpi\ntag_60:\n  pop\n  pop\n  dup2\n  0x01\n  shl\n  swap2\n  not(0x00)\n  swap1\n  0x03\n  shl\n  shr\n  not\n  and\n  or\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1451:1464  _name = name_ */\n  0x02\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\ntag_61:\n  dup1\n  mload\n  swap1\n  sub(shl(0x40, 0x01), 0x01)\n  dup3\n  gt\n  tag_92\n  jumpi\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sload\n  swap1\n  0x01\n  dup3\n  dup2\n  shr\n  swap3\n  and\n  dup1\n  iszero\n  tag_64\n  jumpi\ntag_65:\n  0x20\n  dup4\n  lt\n  eq\n  tag_66\n  jumpi\n  dup2\n  0x1f\n  dup5\n  swap4\n  gt\n  tag_68\n  jumpi\ntag_69:\n  pop\n  0x20\n  swap1\n  0x1f\n  dup4\n  gt\n  0x01\n  eq\n  tag_70\n  jumpi\n  0x00\n  swap3\n  tag_72\n  jumpi\ntag_73:\n  pop\n  pop\n  dup2\n  0x01\n  shl\n  swap2\n  not(0x00)\n  swap1\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  shl\n  shr\n  not\n  and\n  or\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\ntag_74:\n  sub(shl(0xa0, 0x01), 0x01)\n  dup2\n  and\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":1273:1299  initialOwner == address(0) */\n  iszero\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":1269:1364  if (initialOwner == address(0)) {... */\n  tag_75\n  jumpi\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010  _owner */\n  0x08\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup1\n  sload\n  sub(shl(0xa0, 0x01), 0x01)\n  swap3\n  dup4\n  and\n  not(sub(shl(0xa0, 0x01), 0x01))\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup3\n  and\n  dup2\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  swap2\n  and\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092  OwnershipTransferred(oldOwner, newOwner) */\n  0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n  0x00\n  dup1\n  log3\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x0b\n  dup1\n  sload\n  not(sub(shl(0x60, 0x01), 0x01))\n  and\n    /* \"contracts/TicketContract.sol\":1085:1088  200 */\n  0xc8\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  or\n  swap1\n  sstore\n  0x00\n    /* \"contracts/TicketContract.sol\":3924:3927  ++i */\ntag_77:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup10\n  mload\n    /* \"contracts/TicketContract.sol\":3904:3922  i < _admins.length */\n  dup2\n  lt\n  iszero\n  tag_78\n  jumpi\n    /* \"contracts/TicketContract.sol\":3953:3987  _grantRole(ADMIN_ROLE, _admins[i]) */\n  tag_80\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":3976:3986  _admins[i] */\n  tag_81\n  dup4\n  dup14\n  tag_5\n  jump\t// in\ntag_81:\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\n  mload\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n    /* \"contracts/TicketContract.sol\":3953:3987  _grantRole(ADMIN_ROLE, _admins[i]) */\n  tag_6\n  jump\t// in\ntag_80:\n  pop\n    /* \"contracts/TicketContract.sol\":4002:4044  _grantRole(DEFAULT_ADMIN_ROLE, _admins[i]) */\n  tag_82\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":4033:4043  _admins[i] */\n  tag_83\n  dup4\n  dup14\n  tag_5\n  jump\t// in\ntag_83:\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\n  mload\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n    /* \"contracts/TicketContract.sol\":4002:4044  _grantRole(DEFAULT_ADMIN_ROLE, _admins[i]) */\n  tag_7\n  jump\t// in\ntag_82:\n  pop\n  not(0x00)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup2\n  eq\n  tag_84\n  jumpi\n  0x01\n  add\n    /* \"contracts/TicketContract.sol\":3889:3902  uint256 i = 0 */\n  jump(tag_77)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\ntag_84:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x11)\n  revert(0x00, 0x24)\n    /* \"contracts/TicketContract.sol\":3904:3922  i < _admins.length */\ntag_78:\n  pop\n    /* \"contracts/TicketContract.sol\":4064:4121  resellPaiementSplitter = payable(_resellPaiementSplitter) */\n  0x0c\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  not(sub(shl(0xa0, 0x01), 0x01))\n  swap1\n  dup2\n  and\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup1\n  dup15\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap2\n  swap1\n  swap2\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x0b\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  sub(shl(0x60, 0x01), 0x01)\n  and\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x60\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap5\n  swap1\n  swap5\n  shl\n  not(sub(shl(0x60, 0x01), 0x01))\n  and\n  swap4\n  swap1\n  swap4\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":4198:4264  organizerPaymentSplitter = payable(_organizerEventPaymentSplitter) */\n  0x0d\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  dup4\n  and\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap4\n  dup3\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap4\n  swap1\n  swap4\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":4275:4346  dataFeed = AggregatorV3Interface(... */\n  0x0e\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  dup3\n  and\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap4\n  swap1\n  swap3\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap3\n  swap1\n  swap3\n  or\n  swap1\n  sstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x0f\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  swap1\n  swap2\n  and\n    /* \"contracts/TicketContract.sol\":4499:4541  0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada */\n  0xd0d5e3db44de05e9f294bb0a3beeaf030de24ada\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  or\n  swap1\n  sstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n    /* \"contracts/TicketContract.sol\":3904:3922  i < _admins.length */\n  swap5\n  swap6\n  swap5\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  tag_86\n  dup2\n  tag_1\n  jump\t// in\ntag_86:\n  0x2f7b97837f2d14ba2ed3a4b2282e259126a9b848\n  dup2\n  mstore\n  0x01\n  0x20\n    /* \"contracts/TicketContract.sol\":5831:5922  TokenInfo({... */\n  dup3\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sload\n  0x010000000000000000\n  dup2\n  lt\n  iszero\n  tag_92\n  jumpi\n  0x01\n  dup2\n  add\n  dup1\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\n  dup2\n  lt\n  iszero\n  tag_94\n  jumpi\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n  keccak256(0x00, 0x20)\n  add\n  swap1\n  0x01\n  dup1\n  0xa0\n  shl\n  sub\n  dup2\n  mload\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup3\n  sload\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap2\n  0x20\n  shl(0xa0, 0xff)\n    /* \"contracts/TicketContract.sol\":5831:5922  TokenInfo({... */\n  swap2\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload\n  iszero\n  iszero\n  0xa0\n  shl\n  and\n  swap2\n  0x01\n  dup1\n  0xa8\n  shl\n  sub\n  not\n  and\n  or\n  or\n  swap1\n  sstore\n  mload(0x40)\n  tag_91\n  dup2\n  tag_1\n  jump\t// in\ntag_91:\n  0x9999f7fea5938fd3b1e26a12c3f2fb024e194f97\n  dup2\n  mstore\n  0x01\n  0x20\n    /* \"contracts/TicketContract.sol\":5831:5922  TokenInfo({... */\n  dup3\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sload\n  0x010000000000000000\n  dup2\n  lt\n  iszero\n  tag_92\n  jumpi\n  0x01\n  dup2\n  add\n  dup1\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\n  dup2\n  lt\n  iszero\n  tag_94\n  jumpi\n    /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n  0x12\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  dup2\n  mstore\n  dup3\n  mload\n  0xbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444\n  swap3\n  swap1\n  swap3\n  add\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n    /* \"contracts/TicketContract.sol\":5831:5922  TokenInfo({... */\n  swap5\n  swap1\n  swap5\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload\n  not(sub(shl(0xa8, 0x01), 0x01))\n  swap1\n  swap5\n  and\n  sub(shl(0xa0, 0x01), 0x01)\n  swap4\n  dup5\n  and\n  or\n  swap4\n  iszero\n  iszero\n  0xa0\n  shl\n  shl(0xa0, 0xff)\n  and\n  swap4\n  swap1\n  swap4\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":4963:5009  eventContract = IEventContract(_eventContract) */\n  0x10\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  not(sub(shl(0xa0, 0x01), 0x01))\n  swap1\n  dup2\n  and\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap5\n  dup4\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap5\n  dup6\n  or\n  swap1\n  swap2\n  sstore\n    /* \"contracts/TicketContract.sol\":5019:5090  nftTemplateContract = ITixSellNftTemplateContract(_nftTemplateContract) */\n  0x13\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  swap1\n  swap2\n  and\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap2\n  swap1\n  swap5\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  or\n  swap1\n  swap3\n  sstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x40\n  dup1\n  mload\n  shl(0xe0, 0x3299e865)\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  dup2\n  mstore\n  0x04\n  dup2\n  add\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap2\n  swap1\n  swap2\n  mstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap5\n  mload\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  0x44\n  dup7\n  add\n  dup2\n  swap1\n  mstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup6\n  swap4\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  0x64\n  dup6\n  add\n  swap4\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  swap2\n  swap1\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\ntag_96:\n  dup2\n  dup2\n  lt\n  tag_97\n  jumpi\n  pop\n  pop\n  pop\n  0x24\n  dup4\n  add\n  mstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n  swap3\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  swap1\n  dup3\n  swap1\n  sub\n  swap1\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup3\n  swap1\n  0x00\n  swap1\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  gas\n  call\n  swap1\n  dup2\n  iszero\n  tag_99\n  jumpi\n  0x00\n  swap2\n  tag_101\n  jumpi\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\ntag_102:\n  pop\n    /* \"contracts/TicketContract.sol\":5393:5481  ticketReservationContract = ITicketReservationContract(ticketReservationContractAddress) */\n  0x11\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup1\n  sload\n  not(sub(shl(0xa0, 0x01), 0x01))\n  and\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap3\n  dup4\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  or\n  swap1\n  sstore\n    /* \"contracts/TicketContract.sol\":4064:4121  resellPaiementSplitter = payable(_resellPaiementSplitter) */\n  0x0c\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  sload\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n  swap1\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3156:3161  10000 */\n  0x2710\n  sub(shl(0x60, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup3\n  and\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3576:3602  feeNumerator > denominator */\n  dup2\n  lt\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3572:3745  if (feeNumerator > denominator) {... */\n  tag_103\n  jumpi\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3758:3780  receiver == address(0) */\n  pop\n  dup2\n  iszero\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3754:3862  if (receiver == address(0)) {... */\n  tag_105\n  jumpi\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n  tag_107\n  dup2\n  tag_1\n  jump\t// in\ntag_107:\n  dup3\n  dup2\n  mstore\n  sub(shl(0x60, 0x01), 0x01)\n  dup3\n  and\n  0x20\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3894:3929  RoyaltyInfo(receiver, feeNumerator) */\n  swap1\n  swap2\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n  0xa0\n  shl\n  not(sub(shl(0xa0, 0x01), 0x01))\n  and\n  or\n  0x00\n  sstore\n  mload(0x40)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  return\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3754:3862  if (receiver == address(0)) {... */\ntag_105:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n  shl(0xe1, 0x5b6cc805)\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3803:3851  ERC2981InvalidDefaultRoyaltyReceiver(address(0)) */\n  dup2\n  mstore\n  0x00\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  0x04\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3803:3851  ERC2981InvalidDefaultRoyaltyReceiver(address(0)) */\n  dup3\n  add\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  mstore\n  0x24\n  swap1\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3803:3851  ERC2981InvalidDefaultRoyaltyReceiver(address(0)) */\n  revert\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3572:3745  if (feeNumerator > denominator) {... */\ntag_103:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n  shl(0xe0, 0x6f483d09)\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3679:3734  ERC2981InvalidDefaultRoyalty(feeNumerator, denominator) */\n  dup2\n  mstore\n  sub(shl(0x60, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  swap3\n  and\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  0x04\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3679:3734  ERC2981InvalidDefaultRoyalty(feeNumerator, denominator) */\n  dup4\n  add\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  0x24\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup3\n  add\n  mstore\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  0x44\n  swap2\n  pop\n    /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":3679:3734  ERC2981InvalidDefaultRoyalty(feeNumerator, denominator) */\n  revert\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\ntag_101:\n  swap1\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  dup3\n  returndatasize\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  gt\n  tag_108\n  jumpi\ntag_109:\n  dup2\n  tag_110\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  swap4\n  dup4\n  tag_2\n  jump\t// in\ntag_110:\n  dup2\n  add\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  sub\n  slt\n  tag_111\n  jumpi\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  pop\n  tag_113\n  swap1\n  tag_3\n  jump\t// in\ntag_113:\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\n  dup3\n  jump(tag_102)\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\ntag_111:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup1\n  revert\n    /* \"contracts/TicketContract.sol\":5302:5383  ticketReservationFactory.deployTicketReservationContract(_admins, _eventContract) */\ntag_108:\n  returndatasize\n  swap2\n  pop\n  jump(tag_109)\ntag_99:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  returndatasize\n  0x00\n  dup3\n  returndatacopy\n  returndatasize\n  swap1\n  revert\ntag_97:\n  dup3\n  mload\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  dup6\n  mstore\n  dup8\n  swap6\n  pop\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  swap5\n  dup6\n  add\n  swap5\n  swap1\n  swap3\n  add\n  swap2\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x01\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  add\n  jump(tag_96)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\ntag_94:\n  shl(0xe0, 0x4e487b71)\n  0x00\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\n  mstore\n  mstore(0x04, 0x32)\n  revert(0x00, 0x24)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\ntag_92:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x41)\n  revert(0x00, 0x24)\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":1269:1364  if (initialOwner == address(0)) {... */\ntag_75:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mload(0x40)\n  shl(0xe0, 0x1e4fbdf7)\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":1322:1353  OwnableInvalidOwner(address(0)) */\n  dup2\n  mstore\n  0x00\n  0x04\n  dup3\n  add\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2232:2236  0x00 */\n  mstore\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x24\n  swap1\n    /* \"@openzeppelin/contracts/access/Ownable.sol\":1322:1353  OwnableInvalidOwner(address(0)) */\n  revert\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\ntag_72:\n  add\n  mload\n  swap1\n  pop\n  0x00\n  dup1\n  jump(tag_73)\ntag_70:\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  dup2\n  mstore\n  swap4\n  pop\n  0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b\n  swap2\n  swap1\ntag_114:\n  not(0x1f)\n  dup5\n  and\n  dup6\n  lt\n  tag_115\n  jumpi\n  0x01\n  swap5\n  pop\n  dup4\n  not(0x1f)\n  dup2\n  and\n  lt\n  tag_117\n  jumpi\ntag_118:\n  pop\n  pop\n  pop\n  dup2\n  shl\n  add\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\n  jump(tag_74)\ntag_117:\n  add\n  mload\n  not(0x00)\n  0xf8\n  dup5\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  shl\n  and\n  shr\n  not\n  and\n  swap1\n  sstore\n  0x00\n  dup1\n  dup1\n  jump(tag_118)\ntag_115:\n  dup2\n  dup2\n  add\n  mload\n  dup4\n  sstore\n  0x20\n  swap5\n  dup6\n  add\n  swap5\n  0x01\n  swap1\n  swap4\n  add\n  swap3\n  swap1\n  swap2\n  add\n  swap1\n  jump(tag_114)\ntag_68:\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1474:1491  _symbol = symbol_ */\n  0x03\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n  swap1\n  swap2\n  pop\n  0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b\n  0x1f\n  dup5\n  add\n  0x05\n  shr\n  dup2\n  add\n  0x20\n  dup6\n  lt\n  tag_119\n  jumpi\ntag_120:\n  swap1\n  dup5\n  swap4\n  swap3\n  swap2\ntag_121:\n  0x1f\n  dup4\n  add\n  0x05\n  shr\n  dup3\n  add\n  dup2\n  lt\n  tag_122\n  jumpi\n  pop\n  pop\n  jump(tag_69)\ntag_122:\n  0x00\n  dup2\n  sstore\n  dup6\n  swap5\n  pop\n  0x01\n  add\n  jump(tag_121)\ntag_119:\n  pop\n  dup1\n  jump(tag_120)\ntag_66:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x22)\n  revert(0x00, 0x24)\ntag_64:\n  swap2\n  0x7f\n  and\n  swap2\n  jump(tag_65)\ntag_59:\n  add\n  mload\n  swap1\n  pop\n  0x00\n  dup1\n  jump(tag_60)\ntag_57:\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1451:1464  _name = name_ */\n  0x02\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  swap1\n  dup2\n  mstore\n  swap4\n  pop\n  0x00\n  dup1\n  mload\n  0x20\n  data_1ab0c6948a275349ae45a06aad66a8bd65ac18074615d53676c09b67809099e0\n  dup4\n  codecopy\n  dup2\n  mload\n  swap2\n  mstore\n  swap2\n  swap1\ntag_124:\n  not(0x1f)\n  dup5\n  and\n  dup6\n  lt\n  tag_125\n  jumpi\n  0x01\n  swap5\n  pop\n  dup4\n  not(0x1f)\n  dup2\n  and\n  lt\n  tag_127\n  jumpi\ntag_128:\n  pop\n  pop\n  pop\n  dup2\n  shl\n  add\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1451:1464  _name = name_ */\n  0x02\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  sstore\n  jump(tag_61)\ntag_127:\n  add\n  mload\n  not(0x00)\n  0xf8\n  dup5\n  0x03\n  shl\n  and\n  shr\n  not\n  and\n  swap1\n  sstore\n  0x00\n  dup1\n  dup1\n  jump(tag_128)\ntag_125:\n  dup2\n  dup2\n  add\n  mload\n  dup4\n  sstore\n  0x20\n  swap5\n  dup6\n  add\n  swap5\n  0x01\n  swap1\n  swap4\n  add\n  swap3\n  swap1\n  swap2\n  add\n  swap1\n  jump(tag_124)\ntag_55:\n    /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1451:1464  _name = name_ */\n  0x02\n  0x00\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  mstore\n  swap1\n  swap2\n  pop\n  0x00\n  dup1\n  mload\n  0x20\n  data_1ab0c6948a275349ae45a06aad66a8bd65ac18074615d53676c09b67809099e0\n  dup4\n  codecopy\n  dup2\n  mload\n  swap2\n  mstore\n  0x1f\n  dup5\n  add\n  0x05\n  shr\n  dup2\n  add\n  swap2\n  0x20\n  dup6\n  lt\n  tag_129\n  jumpi\ntag_130:\n  swap1\n  0x1f\n  dup6\n  swap5\n  swap4\n  swap3\n  add\n  0x05\n  shr\n  add\n  swap1\ntag_131:\n  dup2\n  dup2\n  lt\n  tag_132\n  jumpi\n  pop\n  jump(tag_56)\ntag_132:\n  0x00\n  dup2\n  sstore\n  dup5\n  swap4\n  pop\n  0x01\n  add\n  jump(tag_131)\ntag_129:\n  swap1\n  swap2\n  pop\n  dup2\n  swap1\n  jump(tag_130)\ntag_51:\n  swap2\n  0x7f\n  and\n  swap2\n  jump(tag_52)\ntag_43:\n  0x00\n  dup1\n  revert\ntag_24:\n  0x20\n  dup1\n  swap2\n  tag_134\n  dup5\n  tag_3\n  jump\t// in\ntag_134:\n  dup2\n  mstore\n  add\n  swap2\n  add\n  swap1\n  jump(tag_23)\ntag_1:\n  0x40\n  dup2\n  add\n  swap1\n  dup2\n  lt\n  sub(shl(0x40, 0x01), 0x01)\n  dup3\n  gt\n  or\n  tag_92\n  jumpi\n  0x40\n  mstore\n  jump\t// out\ntag_2:\n  0x1f\n  swap1\n  swap2\n  add\n  not(0x1f)\n  and\n  dup2\n  add\n  swap1\n  sub(shl(0x40, 0x01), 0x01)\n  dup3\n  gt\n  swap1\n  dup3\n  lt\n  or\n  tag_92\n  jumpi\n  0x40\n  mstore\n  jump\t// out\ntag_3:\n  mload\n  swap1\n  sub(shl(0xa0, 0x01), 0x01)\n  dup3\n  and\n  dup3\n  sub\n  tag_43\n  jumpi\n  jump\t// out\ntag_4:\n  0x00\ntag_141:\n  dup4\n  dup2\n  lt\n  tag_142\n  jumpi\n  pop\n  pop\n  0x00\n  swap2\n  add\n  mstore\n  jump\t// out\ntag_142:\n  dup2\n  dup2\n  add\n  mload\n  dup4\n  dup3\n  add\n  mstore\n  0x20\n  add\n  jump(tag_141)\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\ntag_5:\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  dup1\n  mload\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\n  dup3\n  lt\n  iszero\n  tag_94\n  jumpi\n  0x20\n  swap2\n  0x05\n  shl\n  add\n  add\n  swap1\n  jump\t// out\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6179:6495  function _grantRole(bytes32 role, address account) internal virtual returns (bool) {... */\ntag_6:\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n  0x00\n  dup2\n  dup2\n  mstore\n  mstore(0x20, 0x5e421a728e346ccaf4d82870ec53d59217a30d3483c6688054a2a67760f2138c)\n  0x40\n  dup2\n  keccak256\n  sload\n  swap1\n  swap2\n  swap1\n    /* \"contracts/TicketContract.sol\":988:1011  keccak256(\"ADMIN_ROLE\") */\n  0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775\n  swap1\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0xff\n  and\n  tag_146\n  jumpi\n  dup1\n  dup4\n  mstore\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n  0x09\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n  mstore\n  0x40\n  dup4\n  keccak256\n  dup3\n  dup5\n  mstore\n  0x20\n  mstore\n  0x40\n  dup4\n  keccak256\n  0x01\n  not(0xff)\n  dup3\n  sload\n  and\n  or\n  swap1\n  sstore\n  0x00\n  dup1\n  mload\n  0x20\n  data_01400fe2f234cf888b5e4c66700c7903f33f31bfc9675e51cb0119f915eb534d\n  dup4\n  codecopy\n  dup2\n  mload\n  swap2\n  mstore\n    /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n  caller\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6370:6410  RoleGranted(role, account, _msgSender()) */\n  swap4\n  dup1\n  log4\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x01\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6424:6435  return true */\n  swap1\n  jump\t// out\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6272:6489  if (!hasRole(role, account)) {... */\ntag_146:\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6466:6478  return false */\n  pop\n  pop\n  swap1\n  jump\t// out\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6179:6495  function _grantRole(bytes32 role, address account) internal virtual returns (bool) {... */\ntag_7:\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  and\n  0x00\n  dup2\n  dup2\n  mstore\n  mstore(0x20, 0xec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b)\n  0x40\n  dup2\n  keccak256\n  sload\n  swap1\n  swap2\n  swap1\n  0xff\n  and\n  tag_148\n  jumpi\n  dup2\n  dup1\n  mstore\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n  0x09\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x20\n  mstore\n  0x40\n  dup3\n  keccak256\n  dup2\n  dup4\n  mstore\n  0x20\n  mstore\n  0x40\n  dup3\n  keccak256\n  0x01\n  not(0xff)\n  dup3\n  sload\n  and\n  or\n  swap1\n  sstore\n    /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n  caller\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6370:6410  RoleGranted(role, account, _msgSender()) */\n  swap2\n  0x00\n  dup1\n  mload\n  0x20\n  data_01400fe2f234cf888b5e4c66700c7903f33f31bfc9675e51cb0119f915eb534d\n  dup4\n  codecopy\n  dup2\n  mload\n  swap2\n  mstore\n  dup2\n  dup1\n  log4\n    /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n  0x01\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6424:6435  return true */\n  swap1\n  jump\t// out\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6272:6489  if (!hasRole(role, account)) {... */\ntag_148:\n    /* \"@openzeppelin/contracts/access/AccessControl.sol\":6466:6478  return false */\n  pop\n  swap1\n  jump\t// out\nstop\ndata_01400fe2f234cf888b5e4c66700c7903f33f31bfc9675e51cb0119f915eb534d 2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d\ndata_1ab0c6948a275349ae45a06aad66a8bd65ac18074615d53676c09b67809099e0 405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace\n\nsub_0: assembly {\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      dup1\n      0x40\n      mstore\n      jumpi(tag_58, iszero(lt(calldatasize, 0x04)))\n      0x00\n      dup1\n      revert\n    tag_58:\n      0x00\n      swap1\n      0xe0\n      dup3\n      calldataload\n      dup2\n      shr\n      swap2\n      dup3\n      0x01ffc9a7\n      eq\n      tag_60\n      jumpi\n      pop\n      dup2\n      0x06fdde03\n      eq\n      tag_62\n      jumpi\n      dup2\n      0x081812fc\n      eq\n      tag_64\n      jumpi\n      dup2\n      0x095ea7b3\n      eq\n      tag_66\n      jumpi\n      dup2\n      0x12065fe0\n      eq\n      tag_68\n      jumpi\n      dup2\n      0x23b872dd\n      eq\n      tag_70\n      jumpi\n      dup2\n      0x248a9ca3\n      eq\n      tag_72\n      jumpi\n      dup2\n      0x24cda745\n      eq\n      tag_74\n      jumpi\n      dup2\n      0x26c91cad\n      eq\n      tag_76\n      jumpi\n      dup2\n      0x2a55205a\n      eq\n      tag_78\n      jumpi\n      dup2\n      0x2f2ff15d\n      eq\n      tag_80\n      jumpi\n      dup2\n      0x36568abe\n      eq\n      tag_82\n      jumpi\n      dup2\n      0x3ccfd60b\n      eq\n      tag_84\n      jumpi\n      dup2\n      0x42842e0e\n      eq\n      tag_86\n      jumpi\n      dup2\n      0x45a986c9\n      eq\n      tag_88\n      jumpi\n      dup2\n      0x4fdf4780\n      eq\n      tag_90\n      jumpi\n      dup2\n      0x50b44712\n      eq\n      tag_92\n      jumpi\n      dup2\n      0x5f0d5b85\n      eq\n      tag_94\n      jumpi\n      dup2\n      0x6352211e\n      eq\n      tag_96\n      jumpi\n      dup2\n      0x6bb03a87\n      eq\n      tag_98\n      jumpi\n      dup2\n      0x6e754d3d\n      eq\n      tag_100\n      jumpi\n      dup2\n      0x6f269b7a\n      eq\n      tag_102\n      jumpi\n      dup2\n      0x70a08231\n      eq\n      tag_104\n      jumpi\n      dup2\n      0x715018a6\n      eq\n      tag_106\n      jumpi\n      dup2\n      0x715e76aa\n      eq\n      tag_108\n      jumpi\n      dup2\n      0x7247b789\n      eq\n      tag_110\n      jumpi\n      dup2\n      0x75b238fc\n      eq\n      tag_112\n      jumpi\n      dup2\n      0x796c8481\n      eq\n      tag_114\n      jumpi\n      dup2\n      0x871a1f2d\n      eq\n      tag_116\n      jumpi\n      dup2\n      0x8ab234b6\n      eq\n      tag_118\n      jumpi\n      dup2\n      0x8da5cb5b\n      eq\n      tag_120\n      jumpi\n      dup2\n      0x91d14854\n      eq\n      tag_122\n      jumpi\n      dup2\n      0x95d89b41\n      eq\n      tag_124\n      jumpi\n      dup2\n      0x9af1179e\n      eq\n      tag_126\n      jumpi\n      pop\n      dup1\n      0xa217fddf\n      eq\n      tag_128\n      jumpi\n      dup1\n      0xa22cb465\n      eq\n      tag_130\n      jumpi\n      dup1\n      0xaa9a0912\n      eq\n      tag_132\n      jumpi\n      dup1\n      0xab757d61\n      eq\n      tag_134\n      jumpi\n      dup1\n      0xb4c24af7\n      eq\n      tag_136\n      jumpi\n      dup1\n      0xb88d4fde\n      eq\n      tag_138\n      jumpi\n      dup1\n      0xc6458486\n      eq\n      tag_140\n      jumpi\n      dup1\n      0xc87b56dd\n      eq\n      tag_142\n      jumpi\n      dup1\n      0xcac92669\n      eq\n      tag_144\n      jumpi\n      dup1\n      0xd547741f\n      eq\n      tag_146\n      jumpi\n      dup1\n      0xd56d2e60\n      eq\n      tag_148\n      jumpi\n      dup1\n      0xd7ff31e7\n      eq\n      tag_150\n      jumpi\n      dup1\n      0xdc40da5c\n      eq\n      tag_152\n      jumpi\n      dup1\n      0xe274fd24\n      eq\n      tag_154\n      jumpi\n      dup1\n      0xe985e9c5\n      eq\n      tag_156\n      jumpi\n      dup1\n      0xf074ec5a\n      eq\n      tag_158\n      jumpi\n      0xf2fde38b\n      eq\n      tag_160\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_160:\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      tag_166\n      tag_3\n      jump\t// in\n    tag_166:\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1500:1562  modifier onlyOwner() {... */\n      tag_167\n      tag_22\n      jump\t// in\n    tag_167:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup2\n      and\n      swap1\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2627:2649  newOwner == address(0) */\n      dup2\n      iszero\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2623:2714  if (newOwner == address(0)) {... */\n      tag_168\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup3\n      shl(0xa0, sub(shl(0x60, 0x01), 0x01))\n      dup3\n      and\n      or\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sstore\n      and\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092  OwnershipTransferred(oldOwner, newOwner) */\n      0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092  OwnershipTransferred(oldOwner, newOwner) */\n      dup1\n      log3\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2623:2714  if (newOwner == address(0)) {... */\n    tag_168:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe0, 0x1e4fbdf7)\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2672:2703  OwnableInvalidOwner(address(0)) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2672:2703  OwnableInvalidOwner(address(0)) */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":2672:2703  OwnableInvalidOwner(address(0)) */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_164:\n      dup1\n      revert\n    tag_158:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":1210:1255  address payable public resellPaiementSplitter */\n      0x0c\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_156:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      tag_178\n      tag_3\n      jump\t// in\n    tag_178:\n      0x40\n      tag_179\n      tag_4\n      jump\t// in\n    tag_179:\n      swap3\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      dup1\n      swap4\n      and\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4043:4061  _operatorApprovals */\n      0x07\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256\n      swap2\n      and\n      0x00\n      mstore\n      0x20\n      mstore\n      0x20\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n      mload(0x40)\n      swap1\n      iszero\n      iszero\n      dup2\n      mstore\n      return\n    tag_154:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":1411:1446  IEventContract public eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_152:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":1260:1307  address payable public organizerPaymentSplitter */\n      0x0d\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_150:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      0x40\n      0x20\n      swap2\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":2098:2153  mapping(uint256 => uint256) public ticketTypesForTicket */\n      0x16\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      keccak256\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_148:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      0x20\n      swap1\n      0x40\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_196\n      tag_3\n      jump\t// in\n    tag_196:\n      and\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":2159:2243  mapping(address => mapping(uint256 => uint256)) public nbTicketForUserAndTicketTypes */\n      0x17\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      dup2\n      dup2\n      keccak256\n      calldataload(0x24)\n      dup3\n      mstore\n      dup4\n      mstore\n      keccak256\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_146:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":4747:4773  _revokeRole(role, account) */\n      tag_201\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x04)\n      tag_202\n      tag_4\n      jump\t// in\n    tag_202:\n      swap1\n      dup1\n      dup5\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3907  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2475:2479  role */\n      tag_203\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n      0x40\n      dup7\n      keccak256\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3923  _roles[role].adminRole */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2475:2479  role */\n      tag_18\n      jump\t// in\n    tag_203:\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":4747:4773  _revokeRole(role, account) */\n      tag_21\n      jump\t// in\n    tag_201:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      return\n    tag_144:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      calldataload(0x04)\n      sub(shl(0x60, 0x01), 0x01)\n      dup2\n      and\n      dup1\n      swap2\n      sub\n      tag_208\n      jumpi\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup3\n      keccak256\n        /* \"contracts/TicketContract.sol\":2463:2473  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      mstore\n      0x20\n      mstore\n      jumpi(tag_210, iszero(and(sload(keccak256(0x00, 0x40)), 0xff)))\n      not(sub(shl(0x60, 0x01), 0x01))\n        /* \"contracts/TicketContract.sol\":6014:6040  royaltyValue = _newroyalty */\n      0x0b\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      or\n        /* \"contracts/TicketContract.sol\":6014:6040  royaltyValue = _newroyalty */\n      0x0b\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sstore\n      dup1\n      return\n    tag_210:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x19\n      0x24\n      dup3\n      add\n      mstore\n      0x4f6e6c7920666f756e646572732063616e20646f207468617400000000000000\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_208:\n      pop\n      dup1\n      revert\n    tag_142:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      tag_216\n      tag_217\n      calldataload(0x04)\n      tag_48\n      jump\t// in\n    tag_217:\n      mload(0x40)\n      swap2\n      dup3\n      swap2\n      0x20\n      dup4\n      mstore\n      0x20\n      dup4\n      add\n      swap1\n      tag_2\n      jump\t// in\n    tag_216:\n      sub\n      swap1\n      return\n    tag_140:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":1452:1511  ITicketReservationContract public ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_138:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x80))\n      tag_226\n      tag_3\n      jump\t// in\n    tag_226:\n      tag_227\n      tag_4\n      jump\t// in\n    tag_227:\n      swap1\n      calldataload(0x44)\n      calldataload(0x64)\n      swap3\n      sub(shl(0x40, 0x01), 0x01)\n      dup5\n      gt\n      tag_230\n      jumpi\n      calldatasize\n      0x23\n      dup6\n      add\n      slt\n      iszero\n      tag_230\n      jumpi\n      tag_232\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5185:5189  data */\n      tag_233\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      calldatasize\n      swap1\n      0x24\n      dup2\n      0x04\n      add\n      calldataload\n      swap2\n      add\n      tag_16\n      jump\t// in\n    tag_232:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5125:5132  tokenId */\n      swap3\n      tag_234\n      dup4\n      dup4\n      dup4\n      tag_51\n      jump\t// in\n    tag_234:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5185:5189  data */\n      tag_26\n      jump\t// in\n    tag_233:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      return\n    tag_230:\n      dup5\n      dup1\n      revert\n    tag_136:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n        /* \"contracts/TicketContract.sol\":1160:1205  address payable public tixSellpaymentSplitter */\n      0x0b\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      0x60\n      shr\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_134:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n      tag_243\n      tag_31\n      jump\t// in\n    tag_243:\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_132:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x60))\n      0x20\n        /* \"contracts/TicketContract.sol\":21105:21366  ABDKMathQuad.toUInt (... */\n      tag_243\n        /* \"contracts/TicketContract.sol\":21139:21352  ABDKMathQuad.div (... */\n      tag_249\n        /* \"contracts/TicketContract.sol\":21174:21295  ABDKMathQuad.mul (... */\n      tag_250\n        /* \"contracts/TicketContract.sol\":21209:21234  ABDKMathQuad.fromUInt (x) */\n      tag_251\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x04)\n        /* \"contracts/TicketContract.sol\":21209:21234  ABDKMathQuad.fromUInt (x) */\n      tag_52\n      jump\t// in\n    tag_251:\n        /* \"contracts/TicketContract.sol\":21252:21277  ABDKMathQuad.fromUInt (y) */\n      tag_252\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x24)\n        /* \"contracts/TicketContract.sol\":21252:21277  ABDKMathQuad.fromUInt (y) */\n      tag_52\n      jump\t// in\n    tag_252:\n        /* \"contracts/TicketContract.sol\":21174:21295  ABDKMathQuad.mul (... */\n      swap1\n      tag_54\n      jump\t// in\n    tag_250:\n        /* \"contracts/TicketContract.sol\":21313:21338  ABDKMathQuad.fromUInt (z) */\n      tag_253\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n        /* \"contracts/TicketContract.sol\":21313:21338  ABDKMathQuad.fromUInt (z) */\n      tag_52\n      jump\t// in\n    tag_253:\n        /* \"contracts/TicketContract.sol\":21139:21352  ABDKMathQuad.div (... */\n      swap1\n      tag_56\n      jump\t// in\n    tag_249:\n        /* \"contracts/TicketContract.sol\":21105:21366  ABDKMathQuad.toUInt (... */\n      tag_53\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_130:\n      pop\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      tag_258\n      tag_3\n      jump\t// in\n    tag_258:\n      calldataload(0x24)\n      swap1\n      dup2\n      iszero\n      iszero\n      swap1\n      dup2\n      dup4\n      sub\n      tag_259\n      jumpi\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n      swap2\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15702:15724  operator == address(0) */\n      dup3\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15698:15789  if (operator == address(0)) {... */\n      tag_261\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15798:15844  _operatorApprovals[owner][operator] = approved */\n      tag_263\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      swap1\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15798:15816  _operatorApprovals */\n      0x07\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup6\n      keccak256\n      dup5\n      0x00\n      mstore\n      0x20\n      mstore\n      keccak256(0x00, 0x40)\n      swap1\n      0xff\n      dup1\n      not\n      dup4\n      sload\n      and\n      swap2\n      iszero\n      iszero\n      and\n      or\n      swap1\n      sstore\n      jump\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15798:15844  _operatorApprovals[owner][operator] = approved */\n    tag_263:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15859:15900  ApprovalForAll(owner, operator, approved) */\n      0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15859:15900  ApprovalForAll(owner, operator, approved) */\n      swap3\n      log3\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15698:15789  if (operator == address(0)) {... */\n    tag_261:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe3, 0x0b611743)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15747:15778  ERC721InvalidOperator(operator) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15747:15778  ERC721InvalidOperator(operator) */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15747:15778  ERC721InvalidOperator(operator) */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_259:\n      0x00\n      dup1\n      revert\n    tag_128:\n      pop\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n      swap1\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_126:\n      dup3\n      jumpi(tag_164, callvalue)\n      0x20\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_208\n      jumpi\n      dup3\n      tag_272\n      tag_3\n      jump\t// in\n    tag_272:\n        /* \"contracts/TicketContract.sol\":17483:17493  _ticketIds */\n      0x0a\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      swap5\n      swap3\n      dup4\n      swap3\n        /* \"contracts/TicketContract.sol\":17503:17524  uint256 itemCount = 0 */\n      swap1\n      swap2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup4\n      swap1\n      dup8\n      and\n      dup2\n        /* \"contracts/TicketContract.sol\":17589:17606  i <totalItemCount */\n    tag_273:\n      dup4\n      dup2\n      lt\n      tag_274\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      tag_276\n      dup7\n      tag_49\n      jump\t// in\n    tag_276:\n      swap6\n      tag_277\n      mload(0x40)\n      swap8\n      dup9\n      tag_13\n      jump\t// in\n    tag_277:\n      dup1\n      dup8\n      mstore\n      tag_278\n      not(0x1f)\n      swap2\n      tag_49\n      jump\t// in\n    tag_278:\n      add\n      dup6\n    tag_279:\n      dup2\n      dup2\n      lt\n      tag_280\n      jumpi\n        /* \"contracts/TicketContract.sol\":17796:17809  uint256 i = 0 */\n      pop\n      pop\n      dup5\n        /* \"contracts/TicketContract.sol\":17811:17829  i < totalItemCount */\n    tag_282:\n      dup4\n      dup2\n      lt\n      tag_283\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n      pop\n      pop\n      mload(0x40)\n      swap4\n      dup1\n      dup6\n      add\n      swap2\n      dup2\n      dup7\n      mstore\n      dup5\n      mload\n      dup1\n      swap4\n      mstore\n      dup2\n      0x40\n      dup8\n      add\n      swap6\n      add\n      swap4\n      swap1\n    tag_285:\n      dup4\n      dup3\n      lt\n      tag_286\n      jumpi\n      dup7\n      dup7\n      sub\n      dup8\n      return\n    tag_286:\n      dup5\n      mload\n      dup1\n      mload\n      dup8\n      mstore\n      dup1\n      dup5\n      add\n      mload\n      dup8\n      dup6\n      add\n      mstore\n      0x40\n      dup1\n      dup3\n      add\n      mload\n      dup11\n      and\n      swap1\n      dup9\n      add\n      mstore\n      0x60\n      dup1\n      dup3\n      add\n      mload\n      swap1\n      dup9\n      add\n      mstore\n      0x80\n      dup1\n      dup3\n      add\n      mload\n      swap1\n      dup9\n      add\n      mstore\n      0xa0\n      dup1\n      dup3\n      add\n      mload\n      swap1\n      dup9\n      add\n      mstore\n      0xc0\n      dup1\n      dup3\n      add\n      mload\n      iszero\n      iszero\n      swap1\n      dup9\n      add\n      mstore\n      dup2\n      add\n      mload\n      iszero\n      iszero\n      dup7\n      dup3\n      add\n      mstore\n      0x0100\n      swap1\n      swap6\n      add\n      swap5\n      swap4\n      dup3\n      add\n      swap4\n      0x01\n      swap1\n      swap2\n      add\n      swap1\n      jump(tag_285)\n        /* \"contracts/TicketContract.sol\":17831:17834  i++ */\n    tag_283:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup7\n      swap9\n      swap6\n      swap7\n      mstore\n        /* \"contracts/TicketContract.sol\":17641:17648  tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      mstore\n      0x40\n      dup9\n      keccak256\n        /* \"contracts/TicketContract.sol\":17854:17870  tickets[i].owner */\n      dup10\n        /* \"contracts/TicketContract.sol\":17641:17657  tickets[i].owner */\n      0x02\n        /* \"contracts/TicketContract.sol\":17854:17870  tickets[i].owner */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":17854:17878  tickets[i].owner == _fan */\n      swap1\n      dup4\n      dup3\n      eq\n        /* \"contracts/TicketContract.sol\":17850:18084  if (tickets[i].owner == _fan) {... */\n      tag_288\n      jumpi\n        /* \"contracts/TicketContract.sol\":17831:17834  i++ */\n    tag_289:\n      pop\n      pop\n      tag_290\n      swap1\n      tag_40\n      jump\t// in\n    tag_290:\n        /* \"contracts/TicketContract.sol\":17796:17809  uint256 i = 0 */\n      swap7\n      swap5\n      swap4\n      swap7\n      jump(tag_282)\n        /* \"contracts/TicketContract.sol\":17850:18084  if (tickets[i].owner == _fan) {... */\n    tag_288:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x06\n      0x40\n      swap6\n      swap4\n      swap6\n      mload\n      swap2\n      tag_291\n      dup4\n      tag_10\n      jump\t// in\n    tag_291:\n      dup1\n      sload\n      dup4\n      mstore\n      0x01\n      swap4\n      dup5\n      dup3\n      add\n      sload\n      dup11\n      dup6\n      add\n      mstore\n      0x40\n      dup5\n      add\n      mstore\n      0x03\n      dup2\n      add\n      sload\n      0x60\n      dup5\n      add\n      mstore\n      0x04\n      dup2\n      add\n      sload\n      0x80\n      dup5\n      add\n      mstore\n      0x05\n      dup2\n      add\n      sload\n      0xa0\n      dup5\n      add\n      mstore\n      add\n      sload\n      0xff\n      swap1\n      dup2\n      dup2\n      and\n      iszero\n      iszero\n      0xc0\n      dup5\n      add\n      mstore\n      0x08\n      shr\n      and\n      iszero\n      iszero\n      dup9\n      dup3\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":18001:18034  items[currentIndex] = currentItem */\n      tag_292\n      dup4\n      dup11\n      tag_50\n      jump\t// in\n    tag_292:\n      mstore\n      tag_293\n      dup3\n      dup10\n      tag_50\n      jump\t// in\n    tag_293:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      add\n      dup1\n      swap2\n      gt\n      tag_294\n      jumpi\n        /* \"contracts/TicketContract.sol\":18052:18069  currentIndex += 1 */\n      swap2\n        /* \"contracts/TicketContract.sol\":17831:17834  i++ */\n      tag_290\n        /* \"contracts/TicketContract.sol\":17850:18084  if (tickets[i].owner == _fan) {... */\n      dup11\n      jump(tag_289)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_294:\n      shl(0xe0, 0x4e487b71)\n      dup9\n      mstore\n      mstore(0x04, 0x11)\n      0x24\n      dup9\n      revert\n    tag_280:\n      swap8\n      dup1\n      swap6\n      swap7\n      swap9\n      mload(0x40)\n      tag_296\n      dup2\n      tag_10\n      jump\t// in\n    tag_296:\n      dup11\n      dup2\n      mstore\n      dup11\n      dup4\n      dup3\n      add\n      mstore\n      dup11\n      0x40\n      dup3\n      add\n      mstore\n      dup11\n      0x60\n      dup3\n      add\n      mstore\n      dup11\n      0x80\n      dup3\n      add\n      mstore\n      dup11\n      0xa0\n      dup3\n      add\n      mstore\n      dup11\n      0xc0\n      dup3\n      add\n      mstore\n      dup11\n      dup10\n      dup3\n      add\n      mstore\n      dup3\n      dup3\n      dup12\n      add\n      add\n      mstore\n      add\n      swap8\n      swap6\n      swap5\n      swap8\n      jump(tag_279)\n        /* \"contracts/TicketContract.sol\":17608:17611  i++ */\n    tag_274:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup7\n      swap9\n      swap6\n      swap7\n      mstore\n        /* \"contracts/TicketContract.sol\":17641:17648  tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      mstore\n      dup2\n      dup10\n        /* \"contracts/TicketContract.sol\":17641:17657  tickets[i].owner */\n      0x02\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x40\n      dup12\n      keccak256\n        /* \"contracts/TicketContract.sol\":17641:17657  tickets[i].owner */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":17641:17665  tickets[i].owner == _fan */\n      eq\n        /* \"contracts/TicketContract.sol\":17637:17714  if (tickets[i].owner == _fan) {... */\n      tag_297\n      jumpi\n        /* \"contracts/TicketContract.sol\":17608:17611  i++ */\n    tag_298:\n      tag_299\n      swap1\n      tag_40\n      jump\t// in\n    tag_299:\n        /* \"contracts/TicketContract.sol\":17574:17587  uint256 i = 0 */\n      swap7\n      swap5\n      swap4\n      swap7\n      jump(tag_273)\n        /* \"contracts/TicketContract.sol\":17637:17714  if (tickets[i].owner == _fan) {... */\n    tag_297:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap6\n      0x01\n      dup2\n      add\n      dup1\n      swap2\n      gt\n      tag_294\n      jumpi\n        /* \"contracts/TicketContract.sol\":17685:17699  itemCount += 1 */\n      swap6\n        /* \"contracts/TicketContract.sol\":17637:17714  if (tickets[i].owner == _fan) {... */\n      jump(tag_298)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_124:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      mload(0x40)\n      0x00\n      sload(0x03)\n      tag_306\n      dup2\n      tag_8\n      jump\t// in\n    tag_306:\n      dup1\n      dup5\n      mstore\n      swap1\n      0x01\n      swap1\n      dup2\n      dup2\n      and\n      swap1\n      dup2\n      iszero\n      tag_307\n      jumpi\n      pop\n      0x01\n      eq\n      tag_309\n      jumpi\n    tag_310:\n      tag_216\n      dup5\n      tag_217\n      dup2\n      dup7\n      sub\n      dup3\n      tag_13\n      jump\t// in\n    tag_309:\n      0x03\n      0x00\n      swap1\n      dup2\n      mstore\n      swap3\n      pop\n      0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b\n    tag_313:\n      dup3\n      dup5\n      lt\n      tag_314\n      jumpi\n      pop\n      pop\n      pop\n      dup2\n      add\n      0x20\n      add\n      tag_217\n      dup3\n      jump(tag_310)\n    tag_314:\n      dup1\n      sload\n      0x20\n      dup6\n      dup8\n      add\n      dup2\n      add\n      swap2\n      swap1\n      swap2\n      mstore\n      swap1\n      swap4\n      add\n      swap3\n      dup2\n      add\n      jump(tag_313)\n    tag_307:\n      not(0xff)\n      and\n      0x20\n      dup1\n      dup8\n      add\n      swap2\n      swap1\n      swap2\n      mstore\n      swap3\n      iszero\n      iszero\n      0x05\n      shl\n      dup6\n      add\n      swap1\n      swap3\n      add\n      swap3\n      pop\n      tag_217\n      swap2\n      pop\n      dup4\n      swap1\n      pop\n      jump(tag_310)\n    tag_122:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      0x40\n      tag_320\n      tag_4\n      jump\t// in\n    tag_320:\n      swap2\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256\n      swap1\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      and\n      0x00\n      mstore\n      0x20\n      mstore\n      0x20\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n      mload(0x40)\n      swap1\n      iszero\n      iszero\n      dup2\n      mstore\n      return\n    tag_120:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_118:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      calldataload(0x04)\n      sub(shl(0xa0, 0x01), 0x01)\n      dup2\n      dup2\n      and\n      swap2\n      dup3\n      swap1\n      sub\n      tag_329\n      jumpi\n      mload(0x40)\n      swap2\n      tag_331\n      dup4\n      tag_11\n      jump\t// in\n    tag_331:\n      dup3\n      mstore\n      0x20\n        /* \"contracts/TicketContract.sol\":5831:5922  TokenInfo({... */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      0x01\n      dup3\n      mstore\n        /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n      0x12\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      shl(0x40, 0x01)\n      dup2\n      lt\n      iszero\n      tag_332\n      jumpi\n      dup1\n      0x01\n      tag_334\n      swap3\n      add\n        /* \"contracts/TicketContract.sol\":5799:5812  AllowedCrypto */\n      0x12\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sstore\n      tag_6\n      jump\t// in\n    tag_334:\n      swap4\n      swap1\n      swap4\n      tag_335\n      jumpi\n      mload\n      dup4\n      sload\n      swap3\n      mload\n      not(sub(shl(0xa8, 0x01), 0x01))\n      swap1\n      swap4\n      and\n      swap2\n      and\n      or\n      swap1\n      iszero\n      iszero\n      0xa0\n      shl\n      shl(0xa0, 0xff)\n      and\n      or\n      swap1\n      sstore\n      dup1\n      return\n    tag_335:\n      shl(0xe0, 0x4e487b71)\n      dup6\n      mstore\n      0x04\n      dup6\n      swap1\n      mstore\n      0x24\n      dup6\n      revert\n    tag_332:\n      shl(0xe0, 0x4e487b71)\n      dup6\n      mstore\n      mstore(0x04, 0x41)\n      0x24\n      dup6\n      revert\n    tag_329:\n      dup3\n      dup1\n      revert\n    tag_116:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n      tag_243\n      tag_32\n      jump\t// in\n    tag_114:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":20964:20986  resellPaiementSplitter */\n      0x0c\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_112:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n      mload(0x40)\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup2\n      mstore\n      return\n    tag_110:\n      dup3\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0xa0))\n      calldataload(0x04)\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_208\n      jumpi\n      tag_354\n      swap1\n      calldatasize\n      swap1\n      0x04\n      add\n      tag_17\n      jump\t// in\n    tag_354:\n      swap1\n      jumpi(tag_259, sub(calldataload(0x64), iszero(iszero(calldataload(0x64)))))\n      calldataload(0x84)\n      swap2\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":8760:8789  nbTicketForUserAndTicketTypes */\n      0x17\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      calldataload(0x24)\n      dup5\n      mstore\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      sload\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup2\n      extcodesize\n      iszero\n      tag_357\n      jumpi\n      tag_359\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      swap3\n      dup4\n      swap3\n      mload(0x40)\n      swap5\n      dup6\n      dup1\n      swap5\n      dup2\n      swap4\n      shl(0xe0, 0x758ddfdd)\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n      calldataload(0x24)\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup13\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup8\n      add\n      tag_34\n      jump\t// in\n    tag_359:\n      sub\n      swap3\n      gas\n      call\n      dup1\n      iszero\n      tag_398\n      jumpi\n      swap1\n      dup4\n      swap2\n      tag_362\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_363:\n        /* \"contracts/TicketContract.sol\":8926:8941  IERC20 paytoken */\n      pop\n      pop\n      dup2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      calldataload(0x64)\n        /* \"contracts/TicketContract.sol\":8951:9236  if (_withERC20){... */\n      tag_364\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_365:\n      pop\n        /* \"contracts/TicketContract.sol\":9278:9308  getTicketsPrice(_ticketTypeId) */\n      tag_366\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x24)\n        /* \"contracts/TicketContract.sol\":9278:9308  getTicketsPrice(_ticketTypeId) */\n      tag_47\n      jump\t// in\n    tag_366:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n        /* \"contracts/TicketContract.sol\":9350:9371  pricePerTicket*amount */\n      tag_367\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n        /* \"contracts/TicketContract.sol\":9350:9371  pricePerTicket*amount */\n      dup6\n      tag_27\n      jump\t// in\n    tag_367:\n      pop\n        /* \"contracts/TicketContract.sol\":9549:9564  getLatestData() */\n      tag_368\n      tag_31\n      jump\t// in\n    tag_368:\n        /* \"contracts/TicketContract.sol\":9674:9697  getLatestDataMaticUsd() */\n      tag_369\n      tag_32\n      jump\t// in\n    tag_369:\n        /* \"contracts/TicketContract.sol\":9742:9746  1e10 */\n      swap2\n      0x02540be400\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup1\n      dup5\n      dup2\n      mul\n      div\n      dup5\n      eq\n      dup2\n      iszero\n      or\n      iszero\n      tag_372\n      jumpi\n      dup3\n      dup5\n      dup2\n      mul\n      div\n      dup5\n      eq\n      dup4\n      iszero\n      or\n      iszero\n      tag_372\n      jumpi\n        /* \"contracts/TicketContract.sol\":9862:9907  ((pricePerTicket*priceInDollars)/1e18)*amount */\n      tag_374\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":9864:9893  pricePerTicket*priceInDollars */\n      tag_375\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      dup8\n      mul\n        /* \"contracts/TicketContract.sol\":9864:9893  pricePerTicket*priceInDollars */\n      dup12\n      tag_27\n      jump\t// in\n    tag_375:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n        /* \"contracts/TicketContract.sol\":9862:9907  ((pricePerTicket*priceInDollars)/1e18)*amount */\n      tag_27\n      jump\t// in\n    tag_374:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      jumpi(tag_376, iszero(calldataload(0x64)))\n      mload(0x40)\n      shl(0xe0, 0x70a08231)\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      swap1\n      0x20\n      dup3\n      0x24\n      dup2\n      sub(shl(0xa0, 0x01), 0x01)\n      dup9\n      and\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      gas\n      staticcall\n      swap2\n      dup3\n      iszero\n      tag_463\n      jumpi\n      dup9\n      swap3\n      tag_380\n      jumpi\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n    tag_381:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n        /* \"contracts/TicketContract.sol\":10106:10110  1e12 */\n      0xe8d4a51000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      div\n      gt\n      tag_382\n      jumpi\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n    tag_384:\n        /* \"contracts/TicketContract.sol\":10714:10727  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      shl(0xe0, 0xc1665499)\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      0x20\n      swap1\n      dup3\n      swap1\n      0x04\n      swap1\n      dup3\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      gas\n      staticcall\n      dup1\n      iszero\n      tag_467\n      jumpi\n      dup8\n      swap1\n      dup2\n      swap1\n      tag_387\n      jumpi\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n    tag_388:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe2, 0x22b76fcf)\n        /* \"contracts/TicketContract.sol\":10694:10785  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x24\n      dup1\n      calldataload\n      0x04\n        /* \"contracts/TicketContract.sol\":10694:10785  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      swap1\n      swap4\n      pop\n      dup4\n      swap2\n      dup3\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":10694:10785  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_467\n      jumpi\n      swap1\n        /* \"contracts/TicketContract.sol\":10904:10927  theTicketType.fixAmount */\n      0x01e0\n        /* \"contracts/TicketContract.sol\":10694:10785  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      swap2\n      dup9\n      swap2\n      tag_391\n      jumpi\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n    tag_392:\n        /* \"contracts/TicketContract.sol\":10904:10927  theTicketType.fixAmount */\n      pop\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":10956:10969  uint256 i = 0 */\n      dup7\n        /* \"contracts/TicketContract.sol\":10971:10981  i < amount */\n    tag_393:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n        /* \"contracts/TicketContract.sol\":10971:10981  i < amount */\n      dup2\n      lt\n      tag_394\n      jumpi\n        /* \"contracts/TicketContract.sol\":10714:10727  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup9\n      swap1\n      dup2\n      swap1\n      dup10\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n      dup1\n      extcodesize\n      iszero\n      tag_402\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      dup1\n      swap2\n      0x44\n      mload(0x40)\n      dup1\n      swap5\n      dup2\n      swap4\n      shl(0xe0, 0x47f6682b)\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x24)\n      0x04\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      dup4\n      calldataload\n      0x24\n      dup5\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n      gas\n      call\n      swap1\n      dup2\n      iszero\n      tag_398\n      jumpi\n      dup4\n      swap2\n      tag_400\n      jumpi\n        /* \"contracts/TicketContract.sol\":10951:13231  for (uint256 i = 0; i < amount; i++) {... */\n    tag_401:\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n      dup1\n      extcodesize\n      iszero\n      tag_402\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe5, 0x041b2819)\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      0x04\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      swap2\n      dup4\n      swap2\n      dup4\n      swap2\n      dup3\n      swap1\n      dup5\n      swap1\n      dup3\n      swap1\n      tag_404\n      swap1\n      0x24\n      dup4\n      add\n      swap1\n      tag_2\n      jump\t// in\n    tag_404:\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n      sub\n      swap3\n      gas\n      call\n      dup1\n      iszero\n      tag_405\n      jumpi\n      tag_407\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      return\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n    tag_407:\n      tag_409\n      swap1\n      tag_9\n      jump\t// in\n    tag_409:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n      dup1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      return\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n    tag_405:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup5\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":13425:13482  ticketReservationContract.burnReservation(_reservationId) */\n    tag_402:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n      revert\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n    tag_400:\n      tag_412\n      swap1\n      tag_9\n      jump\t// in\n    tag_412:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_413\n      jumpi\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n      dup2\n      dup5\n      jump(tag_401)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_413:\n      pop\n      revert\n        /* \"contracts/TicketContract.sol\":13302:13366  eventContract.addTicketTypesNbTicketMinted(_ticketTypeId,amount) */\n    tag_398:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup6\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":10983:10986  i++ */\n    tag_394:\n        /* \"contracts/TicketContract.sol\":11063:11081  uint256 fixFee = 0 */\n      dup8\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":11265:11294  pricePerTicket*priceInDollars */\n      tag_415\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup9\n      dup9\n      mul\n        /* \"contracts/TicketContract.sol\":11265:11294  pricePerTicket*priceInDollars */\n      dup13\n      tag_27\n      jump\t// in\n    tag_415:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n      jumpi(tag_416, iszero(calldataload(0x64)))\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":11378:11393  unitPrice>=1e18 */\n      dup2\n      lt\n      iszero\n        /* \"contracts/TicketContract.sol\":11374:11495  if (unitPrice>=1e18){... */\n      tag_418\n      jumpi\n        /* \"contracts/TicketContract.sol\":11315:11876  if (_withERC20){... */\n    tag_419:\n        /* \"contracts/TicketContract.sol\":11972:11984  royaltyValue */\n      0x0b\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup3\n      sload\n        /* \"contracts/TicketContract.sol\":21105:21366  ABDKMathQuad.toUInt (... */\n      tag_421\n        /* \"contracts/TicketContract.sol\":21139:21352  ABDKMathQuad.div (... */\n      tag_249\n        /* \"contracts/TicketContract.sol\":21174:21295  ABDKMathQuad.mul (... */\n      tag_423\n        /* \"contracts/TicketContract.sol\":21209:21234  ABDKMathQuad.fromUInt (x) */\n      tag_424\n      sub(shl(0x60, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x64\n      dup2\n      dup8\n      and\n      div\n      and\n        /* \"contracts/TicketContract.sol\":21209:21234  ABDKMathQuad.fromUInt (x) */\n      tag_52\n      jump\t// in\n    tag_424:\n        /* \"contracts/TicketContract.sol\":21252:21277  ABDKMathQuad.fromUInt (y) */\n      tag_252\n      dup8\n      tag_52\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":21174:21295  ABDKMathQuad.mul (... */\n    tag_423:\n        /* \"contracts/TicketContract.sol\":21139:21352  ABDKMathQuad.div (... */\n      tag_55\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":21105:21366  ABDKMathQuad.toUInt (... */\n    tag_421:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup13\n      jumpi(tag_426, iszero(calldataload(0x64)))\n        /* \"contracts/TicketContract.sol\":12230:12246  pricePerTicket>0 */\n      pop\n      pop\n      dup13\n        /* \"contracts/TicketContract.sol\":12226:12736  if (pricePerTicket>0){... */\n      tag_428\n      jumpi\n        /* \"contracts/TicketContract.sol\":12175:13155  if (_withERC20){... */\n    tag_429:\n      pop\n      pop\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":10983:10986  i++ */\n      tag_430\n        /* \"contracts/TicketContract.sol\":12175:13155  if (_withERC20){... */\n      swap1\n    tag_431:\n        /* \"contracts/TicketContract.sol\":13205:13219  pricePerTicket */\n      tag_432\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup11\n      calldataload(0x24)\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":13205:13219  pricePerTicket */\n      tag_45\n      jump\t// in\n    tag_432:\n        /* \"contracts/TicketContract.sol\":10983:10986  i++ */\n      tag_40\n      jump\t// in\n    tag_430:\n        /* \"contracts/TicketContract.sol\":10956:10969  uint256 i = 0 */\n      jump(tag_393)\n        /* \"contracts/TicketContract.sol\":12226:12736  if (pricePerTicket>0){... */\n    tag_428:\n        /* \"contracts/TicketContract.sol\":12407:12411  1e12 */\n      swap2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12407:12411  1e12 */\n      swap2\n        /* \"contracts/TicketContract.sol\":12455:12482  unitPrice - totalForTixSell */\n      tag_433\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      tag_434\n        /* \"contracts/TicketContract.sol\":12407:12411  1e12 */\n      swap5\n        /* \"contracts/TicketContract.sol\":12385:12405  amountPercent+fixFee */\n      tag_435\n        /* \"contracts/TicketContract.sol\":12407:12411  1e12 */\n      0xe8d4a51000\n        /* \"contracts/TicketContract.sol\":12385:12405  amountPercent+fixFee */\n      swap4\n      dup5\n      swap3\n      tag_41\n      jump\t// in\n    tag_435:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n        /* \"contracts/TicketContract.sol\":12455:12482  unitPrice - totalForTixSell */\n      dup1\n      swap4\n      tag_42\n      jump\t// in\n    tag_433:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      sload\n      mload(0x40)\n      shl(0xe0, 0x23b872dd)\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x60\n      swap2\n      swap1\n      swap2\n      shr\n      0x24\n      dup3\n      add\n      mstore\n      0x44\n      dup2\n      add\n      swap3\n      swap1\n      swap3\n      mstore\n      swap1\n      swap4\n      div\n      swap3\n      swap2\n      dup3\n      swap1\n      dup2\n      swap1\n      0x64\n      dup3\n      add\n      swap1\n      jump\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n    tag_434:\n      sub\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup14\n      sub(shl(0xa0, 0x01), 0x01)\n      dup12\n      and\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      gas\n      call\n      dup1\n      iszero\n      tag_436\n      jumpi\n      tag_438\n      jumpi\n        /* \"contracts/TicketContract.sol\":12226:12736  if (pricePerTicket>0){... */\n    tag_439:\n      pop\n        /* \"contracts/TicketContract.sol\":12660:12684  organizerPaymentSplitter */\n      0x0d\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      shl(0xe0, 0x23b872dd)\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":8726:8736  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      0x24\n      dup3\n      add\n      mstore\n      0x44\n      dup2\n      add\n      swap2\n      swap1\n      swap2\n      mstore\n      0x20\n      dup2\n      dup1\n      0x64\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n    tag_440:\n      sub\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup13\n      sub(shl(0xa0, 0x01), 0x01)\n      dup11\n      and\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      gas\n      call\n      dup1\n      iszero\n      tag_441\n      jumpi\n      tag_443\n      jumpi\n        /* \"contracts/TicketContract.sol\":12226:12736  if (pricePerTicket>0){... */\n    tag_444:\n      dup1\n      dup1\n      dup1\n      jump(tag_429)\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n    tag_443:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      dup2\n      returndatasize\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      gt\n      tag_445\n      jumpi\n    tag_446:\n      dup2\n      tag_447\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_447:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_448\n      jumpi\n      swap1\n      tag_450\n        /* \"contracts/TicketContract.sol\":10983:10986  i++ */\n      tag_430\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      tag_37\n      jump\t// in\n    tag_450:\n      pop\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      swap1\n      jump(tag_444)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_448:\n      dup9\n      dup1\n      revert\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n    tag_445:\n      returndatasize\n      swap2\n      pop\n      jump(tag_446)\n    tag_441:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup12\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n    tag_438:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      dup2\n      returndatasize\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      gt\n      tag_451\n      jumpi\n    tag_452:\n      dup2\n      tag_453\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_453:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_454\n      jumpi\n        /* \"contracts/TicketContract.sol\":12626:12695  paytoken.transferFrom(msg.sender, organizerPaymentSplitter,totalOrga) */\n      tag_440\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      tag_456\n      0x20\n      swap3\n      tag_37\n      jump\t// in\n    tag_456:\n      pop\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n      swap2\n      pop\n      jump(tag_439)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_454:\n      dup10\n      dup1\n      revert\n        /* \"contracts/TicketContract.sol\":12531:12604  paytoken.transferFrom(msg.sender,tixSellpaymentSplitter, totalForTixSell) */\n    tag_451:\n      returndatasize\n      swap2\n      pop\n      jump(tag_452)\n    tag_436:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup13\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":12175:13155  if (_withERC20){... */\n    tag_426:\n        /* \"contracts/TicketContract.sol\":12812:12832  amountPercent+fixFee */\n      swap4\n      swap3\n      tag_457\n      swap2\n      swap6\n      pop\n        /* \"contracts/TicketContract.sol\":12871:12898  unitPrice - totalForTixSell */\n      tag_458\n        /* \"contracts/TicketContract.sol\":12812:12832  amountPercent+fixFee */\n      swap3\n      tag_41\n      jump\t// in\n    tag_457:\n        /* \"contracts/TicketContract.sol\":12871:12898  unitPrice - totalForTixSell */\n      dup1\n      swap3\n      tag_42\n      jump\t// in\n    tag_458:\n        /* \"contracts/TicketContract.sol\":12949:12965  pricePerTicket>0 */\n      swap3\n      dup13\n        /* \"contracts/TicketContract.sol\":12945:13141  if (pricePerTicket>0){... */\n      tag_459\n      jumpi\n        /* \"contracts/TicketContract.sol\":12175:13155  if (_withERC20){... */\n    tag_460:\n      pop\n      pop\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":10983:10986  i++ */\n      tag_430\n        /* \"contracts/TicketContract.sol\":12175:13155  if (_withERC20){... */\n      swap1\n      jump(tag_431)\n        /* \"contracts/TicketContract.sol\":12945:13141  if (pricePerTicket>0){... */\n    tag_459:\n        /* \"contracts/TicketContract.sol\":12989:13046  payable(tixSellpaymentSplitter).transfer(totalForTixSell) */\n      dup3\n      dup1\n      swap3\n      dup2\n      swap3\n      dup3\n      swap1\n      dup3\n      iszero\n      tag_461\n      jumpi\n        /* \"contracts/TicketContract.sol\":12945:13141  if (pricePerTicket>0){... */\n    tag_462:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x60\n      shr\n        /* \"contracts/TicketContract.sol\":12989:13046  payable(tixSellpaymentSplitter).transfer(totalForTixSell) */\n      swap1\n      call\n      iszero\n      tag_463\n      jumpi\n        /* \"contracts/TicketContract.sol\":13077:13101  organizerPaymentSplitter */\n      0x0d\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup10\n      swap2\n      dup3\n      swap2\n      dup3\n      swap2\n      dup3\n      swap2\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n      dup3\n        /* \"contracts/TicketContract.sol\":13069:13122  payable(organizerPaymentSplitter).transfer(totalOrga) */\n      dup3\n      iszero\n      tag_465\n      jumpi\n        /* \"contracts/TicketContract.sol\":12945:13141  if (pricePerTicket>0){... */\n    tag_466:\n        /* \"contracts/TicketContract.sol\":13069:13122  payable(organizerPaymentSplitter).transfer(totalOrga) */\n      call\n      iszero\n      tag_467\n      jumpi\n        /* \"contracts/TicketContract.sol\":12945:13141  if (pricePerTicket>0){... */\n      dup10\n      dup9\n      dup2\n      dup1\n      jump(tag_460)\n        /* \"contracts/TicketContract.sol\":13069:13122  payable(organizerPaymentSplitter).transfer(totalOrga) */\n    tag_467:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup10\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":13069:13122  payable(organizerPaymentSplitter).transfer(totalOrga) */\n    tag_465:\n      pop\n      0x08fc\n      jump(tag_466)\n        /* \"contracts/TicketContract.sol\":12989:13046  payable(tixSellpaymentSplitter).transfer(totalForTixSell) */\n    tag_463:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup11\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":12989:13046  payable(tixSellpaymentSplitter).transfer(totalForTixSell) */\n    tag_461:\n      0x08fc\n      swap2\n      pop\n      jump(tag_462)\n        /* \"contracts/TicketContract.sol\":11374:11495  if (unitPrice>=1e18){... */\n    tag_418:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      pop\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":11425:11449  fixAmount*priceInDollars */\n      tag_469\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup9\n      dup9\n      mul\n        /* \"contracts/TicketContract.sol\":11425:11449  fixAmount*priceInDollars */\n      dup6\n      tag_27\n      jump\t// in\n    tag_469:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n        /* \"contracts/TicketContract.sol\":11374:11495  if (unitPrice>=1e18){... */\n      swap1\n      jump(tag_419)\n        /* \"contracts/TicketContract.sol\":11315:11876  if (_withERC20){... */\n    tag_416:\n        /* \"contracts/TicketContract.sol\":11569:11588  unitPrice/converted */\n      tag_470\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup9\n      dup7\n      mul\n        /* \"contracts/TicketContract.sol\":11569:11588  unitPrice/converted */\n      swap1\n      tag_28\n      jump\t// in\n    tag_470:\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mul\n      swap1\n      dup1\n      dup3\n      div\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      eq\n      swap1\n      iszero\n      or\n      iszero\n      tag_476\n      jumpi\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":11612:11640  unitPrice = priceToPaidMatic */\n      dup2\n        /* \"contracts/TicketContract.sol\":11662:11677  unitPrice>=1e18 */\n      lt\n        /* \"contracts/TicketContract.sol\":11315:11876  if (_withERC20){... */\n      tag_419\n        /* \"contracts/TicketContract.sol\":11658:11862  if (unitPrice>=1e18){... */\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      pop\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":11724:11748  fixAmount*priceInDollars */\n      tag_475\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup9\n      dup9\n      mul\n        /* \"contracts/TicketContract.sol\":11724:11748  fixAmount*priceInDollars */\n      dup6\n      tag_27\n      jump\t// in\n    tag_475:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n      0x64\n      dup2\n      mul\n      swap1\n      dup1\n      dup3\n      div\n      0x64\n      eq\n      swap1\n      iszero\n      or\n      iszero\n      tag_476\n      jumpi\n        /* \"contracts/TicketContract.sol\":11809:11837  (fixFeeDollar*100)/converted */\n      tag_478\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup9\n      dup7\n      mul\n        /* \"contracts/TicketContract.sol\":11809:11837  (fixFeeDollar*100)/converted */\n      swap1\n      tag_28\n      jump\t// in\n    tag_478:\n        /* \"contracts/TicketContract.sol\":11839:11843  1e16 */\n      0x2386f26fc10000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup1\n      dup3\n      dup2\n      mul\n      div\n      dup3\n      eq\n      dup2\n      iszero\n      or\n      iszero\n      tag_479\n      jumpi\n      mul\n        /* \"contracts/TicketContract.sol\":11658:11862  if (unitPrice>=1e18){... */\n      swap1\n        /* \"contracts/TicketContract.sol\":11315:11876  if (_withERC20){... */\n      jump(tag_419)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_479:\n      shl(0xe0, 0x4e487b71)\n      dup12\n      mstore\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n      mstore\n      0x24\n      dup12\n      revert\n    tag_476:\n      shl(0xe0, 0x4e487b71)\n      dup11\n      mstore\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n      mstore\n      0x24\n      dup11\n      revert\n        /* \"contracts/TicketContract.sol\":10694:10785  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n    tag_391:\n      tag_481\n      swap2\n      pop\n      returndatasize\n      dup1\n      dup11\n      dup4\n      returndatacopy\n      tag_482\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_482:\n      dup2\n      add\n      swap1\n      tag_39\n      jump\t// in\n    tag_481:\n      dup10\n      jump(tag_392)\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n    tag_387:\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      dup2\n      returndatasize\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      gt\n      tag_483\n      jumpi\n    tag_484:\n      dup2\n      tag_485\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_485:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_486\n      jumpi\n      dup7\n      tag_488\n      0x24\n      swap3\n      tag_35\n      jump\t// in\n    tag_488:\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n      jump(tag_388)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_486:\n      dup7\n      dup1\n      revert\n        /* \"contracts/TicketContract.sol\":10714:10751  eventContract.getTicketTypeContract() */\n    tag_483:\n      returndatasize\n      swap2\n      pop\n      jump(tag_484)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_382:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x18\n      0x24\n      dup3\n      add\n      mstore\n      0x4e6f7420656e6f7567687420455243323020746f207061790000000000000000\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n    tag_380:\n      swap1\n      swap2\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      dup2\n      returndatasize\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      gt\n      tag_489\n      jumpi\n    tag_490:\n      dup2\n      tag_491\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_491:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_492\n      jumpi\n      mload\n      swap1\n        /* \"contracts/TicketContract.sol\":10106:10110  1e12 */\n      0xe8d4a51000\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n      jump(tag_381)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_492:\n      dup8\n      dup1\n      revert\n        /* \"contracts/TicketContract.sol\":10259:10289  paytoken.balanceOf(msg.sender) */\n    tag_489:\n      returndatasize\n      swap2\n      pop\n      jump(tag_490)\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n    tag_376:\n        /* \"contracts/TicketContract.sol\":10395:10416  priceToPaid/converted */\n      tag_494\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup6\n      dup4\n      mul\n        /* \"contracts/TicketContract.sol\":10395:10416  priceToPaid/converted */\n      swap1\n      tag_28\n      jump\t// in\n    tag_494:\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mul\n      swap1\n      dup1\n      dup3\n      div\n        /* \"contracts/TicketContract.sol\":9895:9899  1e18 */\n      0x0de0b6b3a7640000\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      eq\n      swap1\n      iszero\n      or\n      iszero\n      tag_495\n      jumpi\n        /* \"contracts/TicketContract.sol\":10553:10562  msg.value */\n      callvalue\n        /* \"contracts/TicketContract.sol\":10553:10582  msg.value >= priceToPaidMatic */\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      iszero\n        /* \"contracts/TicketContract.sol\":9917:10615  if (_withERC20){... */\n      tag_384\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      jumpi\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x10\n      0x24\n      dup3\n      add\n      mstore\n      shl(0x80, 0x6e6f7420656e6f756768206d6f6e6579)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_495:\n      shl(0xe0, 0x4e487b71)\n      dup8\n      mstore\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n      mstore\n      0x24\n      dup8\n      revert\n    tag_372:\n      shl(0xe0, 0x4e487b71)\n      dup7\n      mstore\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n      mstore\n      0x24\n      dup7\n      revert\n        /* \"contracts/TicketContract.sol\":8951:9236  if (_withERC20){... */\n    tag_364:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      swap3\n      pop\n        /* \"contracts/TicketContract.sol\":9011:9024  AllowedCrypto */\n      0x12\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"contracts/TicketContract.sol\":9001:9031  _cryptoId<AllowedCrypto.length */\n      dup2\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      iszero\n      tag_499\n      jumpi\n        /* \"contracts/TicketContract.sol\":9092:9116  AllowedCrypto[_cryptoId] */\n      tag_501\n      swap1\n      tag_6\n      jump\t// in\n    tag_501:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0xff\n      mload(0x40)\n      swap2\n      tag_502\n      dup4\n      tag_11\n      jump\t// in\n    tag_502:\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      dup2\n      and\n      dup4\n      mstore\n      0xa0\n      shr\n      and\n      iszero\n      dup1\n      iszero\n      0x20\n      dup4\n      add\n      mstore\n      tag_503\n      jumpi\n      mload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n      swap2\n        /* \"contracts/TicketContract.sol\":8951:9236  if (_withERC20){... */\n      dup4\n      jump(tag_365)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_503:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x14\n      0x24\n      dup3\n      add\n      mstore\n      shl(0x62, 0x10dc9e5c1d1bc81b9bdd081cdd5c1c1bdc9d1959)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_499:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":8661:8686  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x24\n      dup3\n      add\n      mstore\n      shl(0x7a, 0x10dc9e5c1d1bc81a59081a5b9d985b1a59)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n    tag_362:\n      tag_505\n      swap1\n      tag_9\n      jump\t// in\n    tag_505:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_208\n      jumpi\n        /* \"contracts/TicketContract.sol\":8661:8817  ticketReservationContract.createReservationNumber(_reservationId,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup2\n      dup5\n      jump(tag_363)\n    tag_357:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      dup1\n      revert\n    tag_108:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":20706:20719  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      0x20\n      swap1\n      return\n    tag_106:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1500:1562  modifier onlyOwner() {... */\n      tag_516\n      tag_22\n      jump\t// in\n    tag_516:\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3004:3010  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      sload\n      not(sub(shl(0xa0, 0x01), 0x01))\n      dup2\n      and\n      swap1\n      swap2\n      sstore\n      0x00\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092  OwnershipTransferred(oldOwner, newOwner) */\n      0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      dup1\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":3052:3092  OwnershipTransferred(oldOwner, newOwner) */\n      log3\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      return\n    tag_104:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_521\n      tag_3\n      jump\t// in\n    tag_521:\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2010:2029  owner == address(0) */\n      dup1\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2006:2093  if (owner == address(0)) {... */\n      tag_522\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      0x40\n      swap2\n      0x20\n      swap4\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2109:2118  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      keccak256\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2006:2093  if (owner == address(0)) {... */\n    tag_522:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe2, 0x22718ad9)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2052:2082  ERC721InvalidOwner(address(0)) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2052:2082  ERC721InvalidOwner(address(0)) */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2052:2082  ERC721InvalidOwner(address(0)) */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_102:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      sub(shl(0x40, 0x01), 0x01)\n      swap2\n      calldataload(0x04)\n      dup4\n      dup2\n      gt\n      tag_329\n      jumpi\n      tag_530\n      swap1\n      calldatasize\n      swap1\n      0x04\n      add\n      tag_17\n      jump\t// in\n    tag_530:\n      swap1\n      tag_531\n      tag_4\n      jump\t// in\n    tag_531:\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      swap1\n      swap5\n      sub(shl(0xa0, 0x01), 0x01)\n      swap2\n      dup3\n      and\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":2581:2602  msg.sender == owner() */\n      eq\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      dup1\n      iszero\n      tag_532\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_533:\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_534\n      swap1\n      tag_33\n      jump\t// in\n    tag_534:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n        /* \"contracts/TicketContract.sol\":14110:14135  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      swap3\n      mload(0x40)\n      swap2\n      shl(0xe2, 0x3e30dcf9)\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup7\n      dup4\n      0x20\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n      swap7\n      dup8\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      dup2\n      dup1\n      tag_535\n      0x24\n      dup3\n      add\n      dup13\n      tag_2\n      jump\t// in\n    tag_535:\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n      sub\n      swap2\n      gas\n      staticcall\n      swap3\n      dup4\n      iszero\n      tag_467\n      jumpi\n      dup8\n      swap4\n      tag_538\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_539:\n        /* \"contracts/TicketContract.sol\":14186:14204  reservation.exists */\n      pop\n      pop\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      tag_540\n      jumpi\n        /* \"contracts/TicketContract.sol\":14305:14331  reservation.expirationDate */\n      0x60\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":14332:14347  block.timestamp */\n      timestamp\n      gt\n        /* \"contracts/TicketContract.sol\":14302:14426  if(reservation.expirationDate<block.timestamp){... */\n      tag_542\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xa0\n        /* \"contracts/TicketContract.sol\":14517:14535  reservation.amount */\n      0x80\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":14569:14593  reservation.ticketTypeId */\n      swap2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":14630:14659  getTicketsPrice(ticketTypeId) */\n      tag_544\n      dup2\n      tag_47\n      jump\t// in\n    tag_544:\n        /* \"contracts/TicketContract.sol\":14683:14696  uint256 i = 0 */\n      dup7\n        /* \"contracts/TicketContract.sol\":14698:14708  i < amount */\n    tag_545:\n      dup4\n      dup2\n      lt\n      tag_546\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n      dup6\n      swap7\n      pop\n      dup3\n        /* \"contracts/TicketContract.sol\":14846:14859  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      swap2\n      dup3\n      extcodesize\n      iszero\n      tag_486\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x44\n      dup8\n      swap3\n      dup4\n      mload(0x40)\n      swap6\n      dup7\n      swap5\n      dup6\n      swap4\n      shl(0xe0, 0x47f6682b)\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      dup6\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup5\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      gas\n      call\n      swap1\n      dup2\n      iszero\n      tag_550\n      jumpi\n      dup6\n      swap2\n      tag_552\n      jumpi\n        /* \"contracts/TicketContract.sol\":14678:14783  for (uint256 i = 0; i < amount; i++) {... */\n    tag_553:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":14110:14135  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":14963:15020  ticketReservationContract.burnReservation(_reservationId) */\n      swap2\n      dup3\n      extcodesize\n      iszero\n      tag_554\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_404\n      swap3\n      dup5\n      swap3\n      dup4\n      mload(0x40)\n      dup1\n      swap7\n      dup2\n      swap6\n      dup3\n      swap5\n      shl(0xe5, 0x041b2819)\n        /* \"contracts/TicketContract.sol\":14963:15020  ticketReservationContract.burnReservation(_reservationId) */\n      dup5\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":14963:15020  ticketReservationContract.burnReservation(_reservationId) */\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup4\n      add\n      swap1\n      tag_2\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":14963:15020  ticketReservationContract.burnReservation(_reservationId) */\n    tag_554:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n      pop\n      revert\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n    tag_552:\n      tag_564\n      swap1\n      tag_9\n      jump\t// in\n    tag_564:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_554\n      jumpi\n        /* \"contracts/TicketContract.sol\":14846:14909  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      dup4\n      dup7\n      jump(tag_553)\n    tag_550:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      dup8\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":14710:14713  i++ */\n    tag_546:\n      tag_567\n        /* \"contracts/TicketContract.sol\":14757:14771  pricePerTicket */\n      swap1\n      tag_432\n      dup4\n      dup6\n      dup13\n      tag_45\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":14710:14713  i++ */\n    tag_567:\n        /* \"contracts/TicketContract.sol\":14683:14696  uint256 i = 0 */\n      jump(tag_545)\n        /* \"contracts/TicketContract.sol\":14302:14426  if(reservation.expirationDate<block.timestamp){... */\n    tag_542:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n        /* \"contracts/TicketContract.sol\":14386:14415  revert(\"Reservation expired\") */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":14386:14415  revert(\"Reservation expired\") */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      swap1\n      mstore\n      0x13\n      0x24\n      dup3\n      add\n      mstore\n      shl(0x6a, 0x14995cd95c9d985d1a5bdb88195e1c1a5c9959)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n        /* \"contracts/TicketContract.sol\":14386:14415  revert(\"Reservation expired\") */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_540:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x04\n      dup2\n      add\n      dup5\n      swap1\n      mstore\n      0x1a\n      0x24\n      dup3\n      add\n      mstore\n      0x496e76616c6964207265736572766174696f6e206e756d626572000000000000\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n    tag_538:\n      swap1\n      swap2\n      swap3\n      pop\n      returndatasize\n      dup1\n      dup9\n      dup4\n      returndatacopy\n      tag_569\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_569:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup6\n      dup2\n      dup4\n      sub\n      slt\n      tag_492\n      jumpi\n      dup1\n      mload\n      swap1\n      dup4\n      dup3\n      gt\n      tag_448\n      jumpi\n      add\n      swap1\n      0x0100\n      dup3\n      dup3\n      sub\n      slt\n      tag_492\n      jumpi\n      mload(0x40)\n      swap3\n      tag_576\n      dup5\n      tag_10\n      jump\t// in\n    tag_576:\n      dup3\n      mload\n      swap1\n      dup2\n      gt\n      tag_448\n      jumpi\n      swap2\n      tag_579\n      dup6\n      swap3\n      tag_580\n      swap5\n      dup4\n      add\n      tag_38\n      jump\t// in\n    tag_579:\n      dup5\n      mstore\n      tag_581\n      dup8\n      dup3\n      add\n      tag_35\n      jump\t// in\n    tag_581:\n      dup8\n      dup6\n      add\n      mstore\n      0x40\n      dup2\n      add\n      mload\n      0x40\n      dup6\n      add\n      mstore\n      0x60\n      dup2\n      add\n      mload\n      0x60\n      dup6\n      add\n      mstore\n      0x80\n      dup2\n      add\n      mload\n      0x80\n      dup6\n      add\n      mstore\n      0xa0\n      dup2\n      add\n      mload\n      0xa0\n      dup6\n      add\n      mstore\n      tag_582\n      0xc0\n      dup3\n      add\n      tag_37\n      jump\t// in\n    tag_582:\n      0xc0\n      dup6\n      add\n      mstore\n      add\n      tag_37\n      jump\t// in\n    tag_580:\n      dup3\n      dup3\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":14110:14168  ticketReservationContract.checkReservation(_reservationId) */\n      swap1\n      dup8\n      dup1\n      jump(tag_539)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n    tag_532:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup6\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup6\n      keccak256\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      mstore\n      0x20\n      mstore\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_534\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      swap1\n      pop\n      jump(tag_533)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_100:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x60))\n      tag_587\n      tag_3\n      jump\t// in\n    tag_587:\n      swap1\n      calldataload(0x24)\n      calldataload(0x44)\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      dup1\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":2581:2602  msg.sender == owner() */\n      eq\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      dup1\n      iszero\n      tag_588\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_589:\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_590\n      swap1\n      tag_33\n      jump\t// in\n    tag_590:\n        /* \"contracts/TicketContract.sol\":15170:15199  getTicketsPrice(ticketTypeId) */\n      tag_591\n      dup3\n      tag_47\n      jump\t// in\n    tag_591:\n        /* \"contracts/TicketContract.sol\":15215:15228  uint256 i = 0 */\n      dup5\n        /* \"contracts/TicketContract.sol\":15230:15240  i < amount */\n    tag_592:\n      dup5\n      dup2\n      lt\n      tag_593\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      pop\n      dup4\n      swap5\n      pop\n        /* \"contracts/TicketContract.sol\":15378:15391  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":15378:15441  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      swap2\n      dup3\n      extcodesize\n      iszero\n      tag_554\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x44\n      dup5\n      swap3\n      dup4\n      mload(0x40)\n      swap6\n      dup7\n      swap5\n      dup6\n      swap4\n      shl(0xe0, 0x47f6682b)\n        /* \"contracts/TicketContract.sol\":15378:15441  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      dup6\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":15378:15441  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup5\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":15378:15441  eventContract.addTicketTypesNbTicketMinted(ticketTypeId,amount) */\n      gas\n      call\n      dup1\n      iszero\n      tag_405\n      jumpi\n      tag_407\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      return\n        /* \"contracts/TicketContract.sol\":15242:15245  i++ */\n    tag_593:\n      tag_604\n        /* \"contracts/TicketContract.sol\":15289:15303  pricePerTicket */\n      swap1\n      tag_432\n      dup4\n      dup7\n      dup11\n      tag_45\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":15242:15245  i++ */\n    tag_604:\n        /* \"contracts/TicketContract.sol\":15215:15228  uint256 i = 0 */\n      jump(tag_592)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n    tag_588:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup5\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup5\n      keccak256\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      mstore\n      0x20\n      mstore\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_590\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      swap1\n      pop\n      jump(tag_589)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_98:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      0x24\n      swap1\n      dup2\n      calldataload\n      sub(shl(0x40, 0x01), 0x01)\n      dup1\n      dup3\n      gt\n      tag_329\n      jumpi\n      calldatasize\n      0x23\n      dup4\n      add\n      slt\n      iszero\n      tag_329\n      jumpi\n      dup2\n      0x04\n      add\n      calldataload\n      swap1\n      dup2\n      gt\n      tag_329\n      jumpi\n      calldatasize\n      dup5\n      dup3\n      dup5\n      add\n      add\n      gt\n      tag_329\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":2581:2602  msg.sender == owner() */\n      eq\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      dup1\n      iszero\n      tag_618\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_619:\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_620\n      swap1\n      tag_33\n      jump\t// in\n    tag_620:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x04)\n      dup4\n      mstore\n      0x20\n      swap4\n        /* \"contracts/TicketContract.sol\":6612:6629  ticketSpecificUri */\n      0x15\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      mstore\n      0x40\n      dup5\n      keccak256\n      swap3\n      tag_621\n      dup5\n      sload\n      tag_8\n      jump\t// in\n    tag_621:\n      0x1f\n      dup2\n      gt\n      tag_622\n      jumpi\n    tag_623:\n      pop\n      dup5\n      swap6\n      0x1f\n      dup5\n      gt\n      0x01\n      eq\n      tag_624\n      jumpi\n      pop\n      swap5\n      dup5\n      swap6\n      dup4\n      swap5\n      swap6\n      swap4\n      tag_626\n      jumpi\n    tag_627:\n      pop\n      pop\n      pop\n      dup2\n      0x01\n      shl\n      swap2\n      not(0x00)\n      swap1\n      0x03\n      shl\n      shr\n      not\n      and\n      or\n      swap1\n      sstore\n      dup1\n      return\n    tag_626:\n      add\n      add\n      calldataload\n      swap1\n      pop\n      dup5\n      dup1\n      dup1\n      jump(tag_627)\n    tag_624:\n      swap2\n      not(0x1f)\n      dup5\n      and\n      swap7\n      dup6\n      dup8\n      mstore\n      dup4\n      dup8\n      keccak256\n      swap4\n      dup8\n      swap1\n    tag_629:\n      dup10\n      dup3\n      lt\n      tag_630\n      jumpi\n      pop\n      pop\n      dup5\n      0x01\n      swap7\n      swap8\n      swap9\n      lt\n      tag_632\n      jumpi\n    tag_633:\n      pop\n      pop\n      pop\n      pop\n      dup2\n      shl\n      add\n      swap1\n      sstore\n      dup1\n      return\n    tag_632:\n      not(0x00)\n      0xf8\n      dup7\n      0x03\n      shl\n      and\n      shr\n      not\n      swap3\n      add\n      add\n      calldataload\n      and\n      swap1\n      sstore\n      dup5\n      dup1\n      dup1\n      dup1\n      jump(tag_633)\n    tag_630:\n      dup1\n      0x01\n      dup5\n      swap8\n      dup7\n      dup4\n      swap6\n      swap7\n      dup10\n      add\n      add\n      calldataload\n      dup2\n      sstore\n      add\n      swap7\n      add\n      swap3\n      add\n      swap1\n      jump(tag_629)\n    tag_622:\n      dup5\n      dup7\n      mstore\n      dup7\n      dup7\n      keccak256\n      0x1f\n      dup6\n      add\n      0x05\n      shr\n      dup2\n      add\n      swap2\n      dup9\n      dup7\n      lt\n      tag_634\n      jumpi\n    tag_635:\n      0x1f\n      add\n      0x05\n      shr\n      add\n      swap1\n    tag_636:\n      dup2\n      dup2\n      lt\n      tag_637\n      jumpi\n      pop\n      jump(tag_623)\n    tag_637:\n      dup7\n      dup2\n      sstore\n      0x01\n      add\n      jump(tag_636)\n    tag_634:\n      swap1\n      swap2\n      pop\n      dup2\n      swap1\n      jump(tag_635)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n    tag_618:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n        /* \"contracts/TicketContract.sol\":2581:2591  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      mstore\n      0x20\n      mstore\n        /* \"contracts/TicketContract.sol\":2573:2665  require(msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender), \"Only admins can do that\") */\n      tag_620\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n        /* \"contracts/TicketContract.sol\":2581:2637  msg.sender == owner() || hasRole(ADMIN_ROLE, msg.sender) */\n      swap1\n      pop\n      jump(tag_619)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_96:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2278:2300  _requireOwned(tokenId) */\n      tag_643\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x04)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2278:2300  _requireOwned(tokenId) */\n      tag_24\n      jump\t// in\n    tag_643:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap2\n      and\n      dup2\n      mstore\n      return\n    tag_94:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x60))\n      calldataload(0x04)\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_208\n      jumpi\n      tag_650\n      swap1\n      calldatasize\n      swap1\n      0x04\n      add\n      tag_17\n      jump\t// in\n    tag_650:\n      dup2\n      calldataload(0x24)\n      swap2\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n        /* \"contracts/TicketContract.sol\":13690:13715  ticketReservationContract */\n      0x11\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":13759:13769  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":13793:13822  nbTicketForUserAndTicketTypes */\n      0x17\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      dup5\n      dup5\n      mstore\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      sload\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      swap2\n      dup2\n      extcodesize\n      iszero\n      tag_357\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      tag_653\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap6\n      mload(0x40)\n      swap7\n      dup8\n      swap6\n      dup7\n      swap5\n      dup6\n      swap4\n      shl(0xe0, 0x758ddfdd)\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup6\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x44)\n        /* \"contracts/TicketContract.sol\":13759:13769  msg.sender */\n      swap2\n      caller\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n      dup8\n      add\n      tag_34\n      jump\t// in\n    tag_653:\n      sub\n      swap3\n      gas\n      call\n      dup1\n      iszero\n      tag_405\n      jumpi\n      tag_656\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup1\n      return\n        /* \"contracts/TicketContract.sol\":13690:13850  ticketReservationContract.createReservationNumber(_reservationNumber,msg.sender,_ticketTypeId,_amount, nbTicketForUserAndTicketTypes[msg.sender][_ticketTypeId]) */\n    tag_656:\n      tag_233\n      swap1\n      tag_9\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_92:\n      swap1\n      pop\n      jumpi(tag_208, callvalue)\n      jumpi(tag_208, slt(add(not(0x03), calldatasize), 0x20))\n      0x40\n      0x0100\n      swap3\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256\n      swap1\n      0xff\n      dup3\n      sload\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      swap3\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      swap1\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      0x02\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      0x03\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      0x04\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      swap2\n      0x06\n      0x05\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"contracts/TicketContract.sol\":1993:2034  mapping(uint256 => Ticket) public tickets */\n      swap5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      swap5\n      mload(0x40)\n      swap9\n      dup10\n      mstore\n      0x20\n      dup10\n      add\n      mstore\n      0x40\n      dup9\n      add\n      mstore\n      0x60\n      dup8\n      add\n      mstore\n      0x80\n      dup7\n      add\n      mstore\n      0xa0\n      dup6\n      add\n      mstore\n      dup2\n      dup2\n      and\n      iszero\n      iszero\n      0xc0\n      dup6\n      add\n      mstore\n      0x08\n      shr\n      and\n      iszero\n      iszero\n      swap1\n      dup3\n      add\n      mstore\n      return\n    tag_90:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n        /* \"contracts/TicketContract.sol\":17310:17320  _ticketIds */\n      0x0a\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_88:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      tag_217\n      0x40\n      tag_216\n      swap3\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":2040:2091  mapping(uint256 => string) public ticketSpecificUri */\n      0x15\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256\n      tag_14\n      jump\t// in\n    tag_86:\n      dup3\n      jumpi(tag_164, callvalue)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5185:5189  data */\n      tag_233\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_676\n      calldatasize\n      tag_5\n      jump\t// in\n    tag_676:\n      swap1\n      mload(0x40)\n      swap3\n      tag_677\n      dup5\n      tag_12\n      jump\t// in\n    tag_677:\n      dup6\n      dup5\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5125:5132  tokenId */\n      tag_234\n      dup4\n      dup4\n      dup4\n      tag_51\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_84:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1500:1562  modifier onlyOwner() {... */\n      tag_683\n      tag_22\n      jump\t// in\n    tag_683:\n        /* \"contracts/TicketContract.sol\":19313:19334  address(this).balance */\n      selfbalance\n        /* \"contracts/TicketContract.sol\":19352:19363  balance > 0 */\n      dup1\n      iszero\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_684\n      jumpi\n        /* \"contracts/TicketContract.sol\":19471:19493  resellPaiementSplitter */\n      0x0c\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup3\n      swap2\n      dup3\n      swap2\n      dup3\n      swap2\n      dup3\n      swap2\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":19463:19519  payable(resellPaiementSplitter).call{value: balance}(\"\") */\n      gas\n      call\n      tag_686\n      tag_25\n      jump\t// in\n    tag_686:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      iszero\n      tag_687\n      jumpi\n      dup1\n      return\n    tag_687:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x10\n      0x24\n      dup3\n      add\n      mstore\n      shl(0x81, 0x2a3930b739b332b9103330b4b632b217)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_684:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x19\n      0x24\n      dup3\n      add\n      mstore\n      0x4e6f206574686572206c65667420746f20776974686472617700000000000000\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_82:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      tag_693\n      tag_4\n      jump\t// in\n    tag_693:\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      and\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5421:5455  callerConfirmation != _msgSender() */\n      sub\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5417:5519  if (callerConfirmation != _msgSender()) {... */\n      tag_694\n      jumpi\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5529:5566  _revokeRole(role, callerConfirmation) */\n      tag_201\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      calldataload(0x04)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5529:5566  _revokeRole(role, callerConfirmation) */\n      tag_21\n      jump\t// in\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5417:5519  if (callerConfirmation != _msgSender()) {... */\n    tag_694:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe1, 0x334bd919)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5478:5508  AccessControlBadConfirmation() */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n      swap1\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":5478:5508  AccessControlBadConfirmation() */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_80:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":4330:4355  _grantRole(role, account) */\n      tag_201\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      calldataload(0x04)\n      tag_702\n      tag_4\n      jump\t// in\n    tag_702:\n      swap1\n      dup1\n      dup5\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3907  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2475:2479  role */\n      tag_703\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n      0x40\n      dup7\n      keccak256\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3923  _roles[role].adminRole */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2475:2479  role */\n      tag_18\n      jump\t// in\n    tag_703:\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":4330:4355  _grantRole(role, account) */\n      tag_20\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_78:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      calldataload(0x04)\n      dup2\n      mstore\n      mstore(0x20, 0x01)\n      0x40\n      dup2\n      keccak256\n      mload(0x40)\n      swap1\n      tag_708\n      dup3\n      tag_11\n      jump\t// in\n    tag_708:\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      dup1\n      dup3\n      and\n      dup1\n      dup5\n      mstore\n      0xa0\n      swap3\n      swap1\n      swap3\n      shr\n      0x20\n      dup5\n      add\n      mstore\n      swap2\n      swap3\n      swap1\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2563:2593  royalty.receiver == address(0) */\n      iszero\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2559:2649  if (royalty.receiver == address(0)) {... */\n      tag_709\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_710:\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2696:2719  royalty.royaltyFraction */\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x2710\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2684:2719  salePrice * royalty.royaltyFraction */\n      tag_711\n      sub(shl(0x60, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2696:2719  royalty.royaltyFraction */\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      and\n      calldataload(0x24)\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2684:2719  salePrice * royalty.royaltyFraction */\n      tag_27\n      jump\t// in\n    tag_711:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      mload\n      0x40\n      dup1\n      mload\n      swap4\n      swap1\n      swap2\n      and\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n      dup4\n      mstore\n      swap3\n      div\n      0x20\n      dup3\n      add\n      mstore\n      return\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2559:2649  if (royalty.receiver == address(0)) {... */\n    tag_709:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      swap2\n      swap3\n      pop\n      tag_713\n      dup3\n      tag_11\n      jump\t// in\n    tag_713:\n      sload\n      dup3\n      dup2\n      and\n      dup3\n      mstore\n      0xa0\n      shr\n      0x20\n      dup3\n      add\n      mstore\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2559:2649  if (royalty.receiver == address(0)) {... */\n      swap1\n      dup3\n      jump(tag_710)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_76:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      calldataload(0x04)\n      swap1\n        /* \"contracts/TicketContract.sol\":1592:1624  TokenInfo[] public AllowedCrypto */\n      0x12\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n        /* \"contracts/TicketContract.sol\":1592:1624  TokenInfo[] public AllowedCrypto */\n      dup3\n      lt\n      iszero\n      tag_164\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x40\n        /* \"contracts/TicketContract.sol\":1592:1624  TokenInfo[] public AllowedCrypto */\n      tag_720\n      dup4\n      tag_6\n      jump\t// in\n    tag_720:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup2\n      mload\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup2\n      mstore\n      0xa0\n      swap2\n      swap1\n      swap2\n      shr\n      0xff\n      and\n      iszero\n      iszero\n      0x20\n      dup3\n      add\n      mstore\n      return\n    tag_74:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      0x40\n      0x20\n      swap2\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":20833:20853  ticketTypesForTicket */\n      0x16\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      keccak256\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_72:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      0x01\n      0x40\n      0x20\n      swap3\n      calldataload(0x04)\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3907  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      mstore\n      keccak256\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3901:3923  _roles[role].adminRole */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_70:\n      dup3\n      jumpi(tag_164, callvalue)\n      tag_233\n      tag_732\n      calldatasize\n      tag_5\n      jump\t// in\n    tag_732:\n      swap2\n      tag_51\n      jump\t// in\n    tag_68:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      0x20\n        /* \"contracts/TicketContract.sol\":6484:6505  address(this).balance */\n      selfbalance\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_66:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x40))\n      tag_741\n      tag_3\n      jump\t// in\n    tag_741:\n      calldataload(0x24)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":14947:14969  _requireOwned(tokenId) */\n      tag_742\n      dup2\n      tag_24\n      jump\t// in\n    tag_742:\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15115  auth != address(0) */\n      iszero\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15132  auth != address(0) && owner != auth */\n      dup1\n      tag_743\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_744:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15166  auth != address(0) && owner != auth && !isApprovedForAll(owner, auth) */\n      dup1\n      tag_745\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_746:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15235  if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {... */\n      tag_747\n      jumpi\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      and\n      swap3\n      dup3\n      swap2\n      dup5\n      swap2\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15287:15315  Approval(owner, to, tokenId) */\n      0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n      dup7\n      dup1\n      log4\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15350:15365  _tokenApprovals */\n      0x06\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup3\n      keccak256\n      dup1\n      sload\n      not(sub(shl(0xa0, 0x01), 0x01))\n      and\n      swap1\n      swap2\n      or\n      swap1\n      sstore\n      dup1\n      return\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15093:15235  if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {... */\n    tag_747:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe0, 0xa9fbf51f)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15193:15220  ERC721InvalidApprover(auth) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15193:15220  ERC721InvalidApprover(auth) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15193:15220  ERC721InvalidApprover(auth) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15166  auth != address(0) && owner != auth && !isApprovedForAll(owner, auth) */\n    tag_745:\n      pop\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      and\n      dup5\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4043:4061  _operatorApprovals */\n      0x07\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup7\n      keccak256\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      mstore\n      swap1\n      swap2\n      mstore\n      dup5\n      keccak256\n      sload\n      0xff\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15136:15166  !isApprovedForAll(owner, auth) */\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15166  auth != address(0) && owner != auth && !isApprovedForAll(owner, auth) */\n      jump(tag_746)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15132  auth != address(0) && owner != auth */\n    tag_743:\n      pop\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      and\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15119:15132  owner != auth */\n      eq\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15097:15132  auth != address(0) && owner != auth */\n      jump(tag_744)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_64:\n      dup3\n      jumpi(tag_164, callvalue)\n      jumpi(tag_164, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap1\n      calldataload(0x04)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":3587:3609  _requireOwned(tokenId) */\n      tag_753\n      dup2\n      tag_24\n      jump\t// in\n    tag_753:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6038:6053  _tokenApprovals */\n      0x06\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      mstore\n      0x40\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap2\n      keccak256\n      sload\n      and\n      mload(0x40)\n      swap1\n      dup2\n      mstore\n      return\n    tag_62:\n      dup3\n      jumpi(tag_164, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_164\n      jumpi\n      mload(0x40)\n      swap1\n      dup1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2446:2451  _name */\n      0x02\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      tag_758\n      dup2\n      tag_8\n      jump\t// in\n    tag_758:\n      dup1\n      dup6\n      mstore\n      swap2\n      0x01\n      swap2\n      dup1\n      dup4\n      and\n      swap1\n      dup2\n      iszero\n      tag_759\n      jumpi\n      pop\n      0x01\n      eq\n      tag_761\n      jumpi\n    tag_762:\n      tag_216\n      dup6\n      tag_217\n      dup2\n      dup8\n      sub\n      dup3\n      tag_13\n      jump\t// in\n    tag_761:\n      swap3\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":2446:2451  _name */\n      0x02\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace\n    tag_765:\n      dup3\n      dup5\n      lt\n      tag_766\n      jumpi\n      pop\n      pop\n      pop\n      dup2\n      add\n      0x20\n      add\n      tag_217\n      dup3\n      tag_216\n      jump(tag_762)\n    tag_766:\n      dup1\n      sload\n      0x20\n      dup6\n      dup8\n      add\n      dup2\n      add\n      swap2\n      swap1\n      swap2\n      mstore\n      swap1\n      swap4\n      add\n      swap3\n      dup2\n      add\n      jump(tag_765)\n    tag_759:\n      dup7\n      swap6\n      pop\n      tag_216\n      swap7\n      swap4\n      pop\n      0x20\n      swap3\n      pop\n      tag_217\n      swap5\n      swap2\n      pop\n      not(0xff)\n      and\n      dup3\n      dup5\n      add\n      mstore\n      iszero\n      iszero\n      0x05\n      shl\n      dup3\n      add\n      add\n      swap3\n      swap4\n      jump(tag_762)\n    tag_60:\n      dup4\n      swap1\n      jumpi(tag_208, callvalue)\n      jumpi(tag_208, slt(add(not(0x03), calldatasize), 0x20))\n      calldataload(0x04)\n      shl(0xe0, 0xffffffff)\n      dup2\n      and\n      dup1\n      swap2\n      sub\n      tag_329\n      jumpi\n      0x20\n      swap3\n      pop\n      shl(0xe1, 0x152a902d)\n        /* \"contracts/TicketContract.sol\":20530:20566  interfaceId == _INTERFACE_ID_ERC2981 */\n      dup2\n      eq\n        /* \"contracts/TicketContract.sol\":20530:20606  interfaceId == _INTERFACE_ID_ERC2981 || super.supportsInterface(interfaceId) */\n      dup1\n      iszero\n      dup1\n      tag_774\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_775:\n      pop\n      iszero\n      iszero\n      dup3\n      mstore\n      pop\n      return\n        /* \"contracts/TicketContract.sol\":20530:20606  interfaceId == _INTERFACE_ID_ERC2981 || super.supportsInterface(interfaceId) */\n    tag_774:\n      shl(0xe0, 0x7965db0b)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2673:2720  interfaceId == type(IAccessControl).interfaceId */\n      dup4\n      eq\n      swap3\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2673:2760  interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId) */\n      dup4\n      iszero\n      tag_776\n      jumpi\n        /* \"contracts/TicketContract.sol\":20530:20606  interfaceId == _INTERFACE_ID_ERC2981 || super.supportsInterface(interfaceId) */\n    tag_777:\n      pop\n      pop\n      pop\n      dup1\n      dup5\n      jump(tag_775)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2673:2760  interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId) */\n    tag_776:\n      shl(0xe0, 0x80ac58cd)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1742  interfaceId == type(IERC721).interfaceId */\n      dup2\n      eq\n      swap4\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1717:1742  type(IERC721).interfaceId */\n      swap1\n      swap2\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1806  interfaceId == type(IERC721).interfaceId ||... */\n      dup4\n      iszero\n      tag_778\n      jumpi\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2673:2760  interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId) */\n    tag_779:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1858  interfaceId == type(IERC721).interfaceId ||... */\n      dup4\n      iszero\n      tag_780\n      jumpi\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2673:2760  interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId) */\n    tag_781:\n      pop\n      pop\n      pop\n      dup4\n      dup1\n      dup1\n      jump(tag_777)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1858  interfaceId == type(IERC721).interfaceId ||... */\n    tag_780:\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2241:2322  interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId) */\n      swap3\n      pop\n      swap1\n      tag_782\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1858  interfaceId == type(IERC721).interfaceId ||... */\n    tag_783:\n      pop\n      dup4\n      dup1\n      dup1\n      jump(tag_781)\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2241:2322  interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId) */\n    tag_782:\n      shl(0xe0, 0x01ffc9a7)\n        /* \"@openzeppelin/contracts/utils/introspection/ERC165.sol\":861:901  interfaceId == type(IERC165).interfaceId */\n      eq\n      swap1\n      pop\n        /* \"@openzeppelin/contracts/token/common/ERC2981.sol\":2241:2322  interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId) */\n      dup4\n      jump(tag_783)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1806  interfaceId == type(IERC721).interfaceId ||... */\n    tag_778:\n      shl(0xe0, 0x5b5e139f)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1758:1806  interfaceId == type(IERC721Metadata).interfaceId */\n      dup3\n      eq\n      swap4\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":1702:1806  interfaceId == type(IERC721).interfaceId ||... */\n      jump(tag_779)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_1:\n      0x00\n    tag_784:\n      dup4\n      dup2\n      lt\n      tag_785\n      jumpi\n      pop\n      pop\n      0x00\n      swap2\n      add\n      mstore\n      jump\t// out\n    tag_785:\n      dup2\n      dup2\n      add\n      mload\n      dup4\n      dup3\n      add\n      mstore\n      0x20\n      add\n      jump(tag_784)\n    tag_2:\n      swap1\n      0x20\n      swap2\n      tag_787\n      dup2\n      mload\n      dup1\n      swap3\n      dup2\n      dup6\n      mstore\n      dup6\n      dup1\n      dup7\n      add\n      swap2\n      add\n      tag_1\n      jump\t// in\n    tag_787:\n      0x1f\n      add\n      not(0x1f)\n      and\n      add\n      add\n      swap1\n      jump\t// out\n    tag_3:\n      calldataload(0x04)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_4:\n      calldataload(0x24)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_5:\n      0x60\n      swap1\n      not(0x03)\n      add\n      slt\n      tag_259\n      jumpi\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      calldataload(0x04)\n      dup3\n      dup2\n      and\n      dup2\n      sub\n      tag_259\n      jumpi\n      swap2\n      calldataload(0x24)\n      swap1\n      dup2\n      and\n      dup2\n      sub\n      tag_259\n      jumpi\n      swap1\n      calldataload(0x44)\n      swap1\n      jump\t// out\n    tag_6:\n        /* \"contracts/TicketContract.sol\":1592:1624  TokenInfo[] public AllowedCrypto */\n      0x12\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      dup2\n      lt\n      iszero\n      tag_798\n      jumpi\n        /* \"contracts/TicketContract.sol\":1592:1624  TokenInfo[] public AllowedCrypto */\n      0x12\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0xbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444\n      add\n      swap1\n      0x00\n      swap1\n      jump\t// out\n    tag_798:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x32)\n      revert(0x00, 0x24)\n    tag_8:\n      swap1\n      0x01\n      dup3\n      dup2\n      shr\n      swap3\n      and\n      dup1\n      iszero\n      tag_800\n      jumpi\n    tag_801:\n      0x20\n      dup4\n      lt\n      eq\n      tag_802\n      jumpi\n      jump\t// out\n    tag_802:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x22)\n      revert(0x00, 0x24)\n    tag_800:\n      swap2\n      0x7f\n      and\n      swap2\n      jump(tag_801)\n    tag_9:\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_804\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_804:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x41)\n      revert(0x00, 0x24)\n    tag_10:\n      0x0100\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      sub(shl(0x40, 0x01), 0x01)\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_11:\n      0x40\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      sub(shl(0x40, 0x01), 0x01)\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_12:\n      0x20\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      sub(shl(0x40, 0x01), 0x01)\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_13:\n      swap1\n      0x1f\n      dup1\n      not\n      swap2\n      add\n      and\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      sub(shl(0x40, 0x01), 0x01)\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_14:\n      swap1\n      mload(0x40)\n      swap2\n      dup3\n      0x00\n      dup3\n      sload\n      swap3\n      tag_814\n      dup5\n      tag_8\n      jump\t// in\n    tag_814:\n      swap1\n      dup2\n      dup5\n      mstore\n      0x01\n      swap5\n      dup6\n      dup2\n      and\n      swap1\n      dup2\n      0x00\n      eq\n      tag_815\n      jumpi\n      pop\n      0x01\n      eq\n      tag_817\n      jumpi\n    tag_818:\n      pop\n      pop\n      tag_819\n      swap3\n      pop\n      sub\n      dup4\n      tag_13\n      jump\t// in\n    tag_819:\n      jump\t// out\n    tag_817:\n      swap1\n      swap4\n      swap2\n      pop\n      0x00\n      mstore\n      0x20\n      swap1\n      dup2\n      0x00\n      keccak256\n      swap4\n      0x00\n      swap2\n    tag_820:\n      dup2\n      dup4\n      lt\n      tag_821\n      jumpi\n      pop\n      pop\n      tag_819\n      swap4\n      pop\n      dup3\n      add\n      add\n      0x00\n      dup1\n      jump(tag_818)\n    tag_821:\n      dup6\n      sload\n      dup9\n      dup5\n      add\n      dup6\n      add\n      mstore\n      swap5\n      dup6\n      add\n      swap5\n      dup8\n      swap5\n      pop\n      swap2\n      dup4\n      add\n      swap2\n      jump(tag_820)\n    tag_815:\n      swap2\n      pop\n      pop\n      tag_819\n      swap5\n      pop\n      0x20\n      swap3\n      pop\n      not(0xff)\n      and\n      dup3\n      dup5\n      add\n      mstore\n      iszero\n      iszero\n      0x05\n      shl\n      dup3\n      add\n      add\n      0x00\n      dup1\n      jump(tag_818)\n    tag_15:\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_804\n      jumpi\n      0x1f\n      add\n      not(0x1f)\n      and\n      0x20\n      add\n      swap1\n      jump\t// out\n    tag_16:\n      swap3\n      swap2\n      swap3\n      tag_825\n      dup3\n      tag_15\n      jump\t// in\n    tag_825:\n      swap2\n      tag_826\n      mload(0x40)\n      swap4\n      dup5\n      tag_13\n      jump\t// in\n    tag_826:\n      dup3\n      swap5\n      dup2\n      dup5\n      mstore\n      dup2\n      dup4\n      add\n      gt\n      tag_259\n      jumpi\n      dup3\n      dup2\n      0x20\n      swap4\n      dup5\n      0x00\n      swap7\n      add\n      calldatacopy\n      add\n      add\n      mstore\n      jump\t// out\n    tag_17:\n      swap1\n      dup1\n      0x1f\n      dup4\n      add\n      slt\n      iszero\n      tag_259\n      jumpi\n      dup2\n      0x20\n      tag_831\n      swap4\n      calldataload\n      swap2\n      add\n      tag_16\n      jump\t// in\n    tag_831:\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3199:3302  function _checkRole(bytes32 role) internal view virtual {... */\n    tag_18:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      0x00\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256(0x00, 0x40)\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x20\n      mstore\n      and(sload(keccak256(0x00, 0x40)), 0xff)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3519:3542  !hasRole(role, account) */\n      iszero\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3515:3623  if (!hasRole(role, account)) {... */\n      tag_832\n      jumpi\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3199:3302  function _checkRole(bytes32 role) internal view virtual {... */\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3515:3623  if (!hasRole(role, account)) {... */\n    tag_832:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x44\n      swap1\n      mload(0x40)\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3565:3612  AccessControlUnauthorizedAccount(account, role) */\n      swap1\n      shl(0xe0, 0xe2517d3f)\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3565:3612  AccessControlUnauthorizedAccount(account, role) */\n      0x04\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup3\n      add\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":3565:3612  AccessControlUnauthorizedAccount(account, role) */\n      revert\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6179:6495  function _grantRole(bytes32 role, address account) internal virtual returns (bool) {... */\n    tag_20:\n      swap1\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup1\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      swap2\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      and\n      swap2\n      dup3\n      dup5\n      mstore\n      0x20\n      mstore\n      0xff\n      0x40\n      dup5\n      keccak256\n      sload\n      and\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6276:6299  !hasRole(role, account) */\n      iszero\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6272:6489  if (!hasRole(role, account)) {... */\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      eq\n      tag_834\n      jumpi\n      dup1\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      dup3\n      dup5\n      mstore\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      0x01\n      not(0xff)\n      dup3\n      sload\n      and\n      or\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6370:6410  RoleGranted(role, account, _msgSender()) */\n      0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6370:6410  RoleGranted(role, account, _msgSender()) */\n      swap4\n      dup1\n      log4\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6424:6435  return true */\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6272:6489  if (!hasRole(role, account)) {... */\n    tag_834:\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6466:6478  return false */\n      pop\n      pop\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6730:7047  function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {... */\n    tag_21:\n      swap1\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup1\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      swap2\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      and\n      swap2\n      dup3\n      dup5\n      mstore\n      0x20\n      mstore\n      0xff\n      0x40\n      dup5\n      keccak256\n      sload\n      and\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6824:7041  if (hasRole(role, account)) {... */\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      eq\n      tag_834\n      jumpi\n      dup1\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      dup3\n      dup5\n      mstore\n      0x20\n      mstore\n      0x40\n      dup4\n      keccak256\n      not(0xff)\n      dup2\n      sload\n      and\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6922:6962  RoleRevoked(role, account, _msgSender()) */\n      0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6922:6962  RoleRevoked(role, account, _msgSender()) */\n      swap4\n      dup1\n      log4\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":6976:6987  return true */\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1796:1958  function _checkOwner() internal view virtual {... */\n    tag_22:\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1710:1716  _owner */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1855:1878  owner() != _msgSender() */\n      sub\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1851:1952  if (owner() != _msgSender()) {... */\n      tag_838\n      jumpi\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1796:1958  function _checkOwner() internal view virtual {... */\n      jump\t// out\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1851:1952  if (owner() != _msgSender()) {... */\n    tag_838:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe0, 0x118cdaa7)\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1901:1941  OwnableUnauthorizedAccount(_msgSender()) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1901:1941  OwnableUnauthorizedAccount(_msgSender()) */\n      0x04\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/access/Ownable.sol\":1901:1941  OwnableUnauthorizedAccount(_msgSender()) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16142:16383  function _requireOwned(uint256 tokenId) internal view returns (address) {... */\n    tag_24:\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16271:16290  owner == address(0) */\n      dup2\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16267:16355  if (owner == address(0)) {... */\n      tag_840\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16364:16376  return owner */\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16142:16383  function _requireOwned(uint256 tokenId) internal view returns (address) {... */\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16267:16355  if (owner == address(0)) {... */\n    tag_840:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x24\n      swap1\n      mload(0x40)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16313:16344  ERC721NonexistentToken(tokenId) */\n      swap1\n      shl(0xe0, 0x7e273289)\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16313:16344  ERC721NonexistentToken(tokenId) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16313:16344  ERC721NonexistentToken(tokenId) */\n      revert\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_25:\n      jumpi(tag_842, iszero(returndatasize))\n      returndatasize\n      swap1\n      tag_844\n      dup3\n      tag_15\n      jump\t// in\n    tag_844:\n      swap2\n      tag_845\n      mload(0x40)\n      swap4\n      dup5\n      tag_13\n      jump\t// in\n    tag_845:\n      dup3\n      mstore\n      returndatasize\n      0x00\n      0x20\n      dup5\n      add\n      returndatacopy\n      jump\t// out\n    tag_842:\n      0x60\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16922:17704  function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {... */\n    tag_26:\n      swap2\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17038:17052  to.code.length */\n      dup1\n      extcodesize\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n      tag_847\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16922:17704  function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {... */\n    tag_848:\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n    tag_847:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_849\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      dup1\n      swap3\n      and\n      swap5\n      mload(0x40)\n      swap4\n      dup5\n      swap4\n      shl(0xe1, 0x0a85bd01)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      swap7\n      dup8\n      dup7\n      mstore\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      0x04\n      dup8\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      and\n      0x24\n      dup6\n      add\n      mstore\n      0x44\n      dup5\n      add\n      mstore\n      0x80\n      0x64\n      dup5\n      add\n      mstore\n      0x84\n      dup4\n      add\n      swap1\n      tag_2\n      jump\t// in\n    tag_849:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      sub\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17055:17056  0 */\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      0x20\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17055:17056  0 */\n      dup2\n      0x00\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      swap4\n      dup2\n      dup6\n      dup9\n      gas\n      call\n      swap1\n      dup3\n      swap1\n      dup3\n      tag_850\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n    tag_851:\n      pop\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17688  try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n      tag_852\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17335:17688  catch (bytes memory reason) {... */\n      dup3\n      tag_854\n      tag_25\n      jump\t// in\n    tag_854:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      mload\n      swap2\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17385:17403  reason.length == 0 */\n      dup3\n      tag_855\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      shl(0xe1, 0x32505749)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17434:17459  ERC721InvalidReceiver(to) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17434:17459  ERC721InvalidReceiver(to) */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17434:17459  ERC721InvalidReceiver(to) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17381:17674  if (reason.length == 0) {... */\n    tag_855:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17561:17656  assembly {... */\n      swap1\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      0x20\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17561:17656  assembly {... */\n      add\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17688  try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n    tag_852:\n      not(sub(shl(0xe0, 0x01), 0x01))\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17194:17245  retval != IERC721Receiver.onERC721Received.selector */\n      sub\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17320  if (retval != IERC721Receiver.onERC721Received.selector) {... */\n      tag_857\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17688  try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n      0x00\n      dup1\n      dup1\n      dup1\n      jump(tag_848)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17320  if (retval != IERC721Receiver.onERC721Received.selector) {... */\n    tag_857:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x24\n      swap1\n      mload(0x40)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17276:17301  ERC721InvalidReceiver(to) */\n      swap1\n      shl(0xe1, 0x32505749)\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      0x04\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17276:17301  ERC721InvalidReceiver(to) */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17276:17301  ERC721InvalidReceiver(to) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n    tag_850:\n      swap1\n      swap2\n      swap3\n      pop\n      0x20\n      dup2\n      returndatasize\n      dup3\n      gt\n      tag_859\n      jumpi\n    tag_860:\n      dup2\n      tag_861\n      0x20\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_861:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_208\n      jumpi\n      mload\n      swap1\n      not(sub(shl(0xe0, 0x01), 0x01))\n      dup3\n      and\n      dup3\n      sub\n      tag_164\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      pop\n      swap1\n      0x00\n      dup1\n      jump(tag_851)\n    tag_859:\n      returndatasize\n      swap2\n      pop\n      jump(tag_860)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_27:\n      dup2\n      dup2\n      mul\n      swap3\n      swap2\n      dup2\n      iszero\n      swap2\n      dup5\n      div\n      eq\n      or\n      iszero\n      tag_866\n      jumpi\n      jump\t// out\n    tag_866:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x11)\n      revert(0x00, 0x24)\n    tag_28:\n      dup2\n      iszero\n      tag_868\n      jumpi\n      div\n      swap1\n      jump\t// out\n    tag_868:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x12)\n      revert(0x00, 0x24)\n    tag_29:\n      mload\n      swap1\n      0xffffffffffffffffffff\n      dup3\n      and\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_30:\n      swap1\n      dup2\n      0xa0\n      swap2\n      sub\n      slt\n      tag_259\n      jumpi\n      tag_874\n      dup2\n      tag_29\n      jump\t// in\n    tag_874:\n      swap2\n      0x20\n      dup3\n      add\n      mload\n      swap2\n      0x40\n      dup2\n      add\n      mload\n      swap2\n      tag_831\n      0x80\n      0x60\n      dup5\n      add\n      mload\n      swap4\n      add\n      tag_29\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":2694:3013  function getLatestData() public view returns (int) {... */\n    tag_31:\n        /* \"contracts/TicketContract.sol\":2957:2965  dataFeed */\n      0x0e\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      shl(0xe2, 0x3fabe5a3)\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      0xa0\n      swap1\n      dup3\n      swap1\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n      0x04\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_878\n      jumpi\n        /* \"contracts/TicketContract.sol\":2993:3006  return answer */\n      pop\n        /* \"contracts/TicketContract.sol\":2694:3013  function getLatestData() public view returns (int) {... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n    tag_878:\n      tag_880\n      swap2\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xa0\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n      returndatasize\n      dup2\n      gt\n      tag_881\n      jumpi\n    tag_882:\n      tag_883\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_883:\n      dup2\n      add\n      swap1\n      tag_30\n      jump\t// in\n    tag_880:\n      pop\n      pop\n      pop\n      swap1\n      pop\n        /* \"contracts/TicketContract.sol\":2694:3013  function getLatestData() public view returns (int) {... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":2957:2983  dataFeed.latestRoundData() */\n    tag_881:\n      pop\n      returndatasize\n      jump(tag_882)\n    tag_876:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload(0x40)\n      returndatasize\n      0x00\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":3019:3323  function getLatestDataMaticUsd() public view returns(int){... */\n    tag_32:\n        /* \"contracts/TicketContract.sol\":3262:3275  dataFeedMatic */\n      0x0f\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      shl(0xe2, 0x3fabe5a3)\n        /* \"contracts/TicketContract.sol\":3262:3293  dataFeedMatic.latestRoundData() */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      0xa0\n      swap1\n      dup3\n      swap1\n        /* \"contracts/TicketContract.sol\":3262:3293  dataFeedMatic.latestRoundData() */\n      0x04\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":3262:3293  dataFeedMatic.latestRoundData() */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_878\n      jumpi\n        /* \"contracts/TicketContract.sol\":3303:3316  return answer */\n      pop\n        /* \"contracts/TicketContract.sol\":3019:3323  function getLatestDataMaticUsd() public view returns(int){... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_33:\n      iszero\n      tag_892\n      jumpi\n      jump\t// out\n    tag_892:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x17\n      0x24\n      dup3\n      add\n      mstore\n      0x4f6e6c792061646d696e732063616e20646f2074686174000000000000000000\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n    tag_34:\n      swap2\n      swap6\n      swap5\n      swap4\n      swap1\n      swap3\n      tag_894\n      0x80\n      swap5\n      0xa0\n      dup6\n      mstore\n      0xa0\n      dup6\n      add\n      swap1\n      tag_2\n      jump\t// in\n    tag_894:\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap8\n      and\n      0x20\n      dup5\n      add\n      mstore\n      0x40\n      dup4\n      add\n      mstore\n      0x60\n      dup3\n      add\n      mstore\n      add\n      mstore\n      jump\t// out\n    tag_35:\n      mload\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_36:\n      mload\n      swap1\n      0xffffffff\n      dup3\n      and\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_37:\n      mload\n      swap1\n      dup2\n      iszero\n      iszero\n      dup3\n      sub\n      tag_259\n      jumpi\n      jump\t// out\n    tag_38:\n      dup2\n      0x1f\n      dup3\n      add\n      slt\n      iszero\n      tag_259\n      jumpi\n      dup1\n      mload\n      tag_903\n      dup2\n      tag_15\n      jump\t// in\n    tag_903:\n      swap3\n      tag_904\n      mload(0x40)\n      swap5\n      dup6\n      tag_13\n      jump\t// in\n    tag_904:\n      dup2\n      dup5\n      mstore\n      0x20\n      dup3\n      dup5\n      add\n      add\n      gt\n      tag_259\n      jumpi\n      tag_831\n      swap2\n      0x20\n      dup1\n      dup6\n      add\n      swap2\n      add\n      tag_1\n      jump\t// in\n    tag_39:\n      swap1\n      0x20\n      dup3\n      dup3\n      sub\n      slt\n      tag_259\n      jumpi\n      dup2\n      mload\n      sub(shl(0x40, 0x01), 0x01)\n      swap3\n      dup4\n      dup3\n      gt\n      tag_259\n      jumpi\n      add\n      0x02c0\n      swap3\n      dup4\n      dup3\n      dup5\n      sub\n      slt\n      tag_259\n      jumpi\n      0x40\n      dup1\n      mload\n      swap5\n      dup6\n      add\n      dup6\n      dup2\n      lt\n      dup4\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      dup2\n      mstore\n      dup3\n      mload\n      dup6\n      mstore\n      tag_916\n      0x20\n      dup5\n      add\n      tag_36\n      jump\t// in\n    tag_916:\n      0x20\n      dup7\n      add\n      mstore\n      tag_917\n      dup2\n      dup5\n      add\n      tag_36\n      jump\t// in\n    tag_917:\n      dup2\n      dup7\n      add\n      mstore\n      0x60\n      dup4\n      add\n      mload\n      0x60\n      dup7\n      add\n      mstore\n      0x80\n      dup4\n      add\n      mload\n      0x80\n      dup7\n      add\n      mstore\n      0xa0\n      dup4\n      add\n      mload\n      0xa0\n      dup7\n      add\n      mstore\n      tag_918\n      0xc0\n      dup5\n      add\n      tag_37\n      jump\t// in\n    tag_918:\n      0xc0\n      dup7\n      add\n      mstore\n      0xe0\n      dup4\n      add\n      mload\n      0xe0\n      dup7\n      add\n      mstore\n      0x0100\n      swap4\n      tag_919\n      dup6\n      dup6\n      add\n      tag_37\n      jump\t// in\n    tag_919:\n      dup6\n      dup8\n      add\n      mstore\n      0x0120\n      swap3\n      dup4\n      dup6\n      add\n      mload\n      dup5\n      dup9\n      add\n      mstore\n      0x0140\n      dup1\n      dup7\n      add\n      mload\n      dup2\n      dup10\n      add\n      mstore\n      0x0160\n      tag_920\n      dup2\n      dup9\n      add\n      tag_37\n      jump\t// in\n    tag_920:\n      dup2\n      dup11\n      add\n      mstore\n      0x0180\n      swap1\n      dup2\n      dup9\n      add\n      mload\n      dup3\n      dup12\n      add\n      mstore\n      0x01a0\n      swap3\n      dup4\n      dup10\n      add\n      mload\n      dup5\n      dup13\n      add\n      mstore\n      0x01c0\n      swap8\n      dup9\n      dup11\n      add\n      mload\n      dup10\n      dup14\n      add\n      mstore\n      0x01e0\n      swap11\n      dup13\n      dup13\n      dup1\n      dup14\n      add\n      mload\n      swap2\n      add\n      mstore\n      dup13\n      dup12\n      tag_921\n      0x0200\n      dup1\n      swap3\n      add\n      tag_37\n      jump\t// in\n    tag_921:\n      swap2\n      add\n      mstore\n      dup13\n      0x0220\n      tag_922\n      dup2\n      dup15\n      add\n      tag_37\n      jump\t// in\n    tag_922:\n      swap2\n      add\n      mstore\n      0x0240\n      dup1\n      dup13\n      add\n      mload\n      swap1\n      dup9\n      dup3\n      gt\n      tag_259\n      jumpi\n      tag_925\n      dup16\n      swap3\n      dup12\n      swap1\n      dup16\n      add\n      tag_38\n      jump\t// in\n    tag_925:\n      swap2\n      add\n      mstore\n      0x0260\n      dup1\n      dup13\n      add\n      mload\n      swap1\n      dup9\n      dup3\n      gt\n      tag_259\n      jumpi\n      tag_928\n      dup16\n      swap3\n      dup12\n      swap1\n      dup16\n      add\n      tag_38\n      jump\t// in\n    tag_928:\n      swap2\n      add\n      mstore\n      0x0280\n      dup1\n      dup13\n      add\n      mload\n      swap1\n      dup9\n      dup3\n      gt\n      tag_259\n      jumpi\n      tag_931\n      dup16\n      swap3\n      dup12\n      swap1\n      dup16\n      add\n      tag_38\n      jump\t// in\n    tag_931:\n      swap2\n      add\n      mstore\n      0x02a0\n      swap11\n      dup12\n      dup2\n      add\n      mload\n      swap1\n      dup9\n      dup3\n      gt\n      tag_259\n      jumpi\n      add\n      swap9\n      dup13\n      dup11\n      dup11\n      sub\n      slt\n      tag_259\n      jumpi\n      dup1\n      mload\n      swap13\n      dup14\n      add\n      dup14\n      dup2\n      lt\n      dup10\n      dup3\n      gt\n      or\n      tag_804\n      jumpi\n      dup2\n      mstore\n      dup10\n      mload\n      dup9\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup10\n      tag_940\n      swap2\n      dup13\n      add\n      tag_38\n      jump\t// in\n    tag_940:\n      dup14\n      mstore\n      0x20\n      dup11\n      add\n      mload\n      dup9\n      dup2\n      gt\n      tag_259\n      jumpi\n      0x20\n      tag_943\n      dup16\n      swap3\n      dup13\n      swap1\n      dup15\n      add\n      tag_38\n      jump\t// in\n    tag_943:\n      swap2\n      add\n      mstore\n      dup1\n      dup11\n      add\n      mload\n      dup9\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup10\n      tag_946\n      swap2\n      dup13\n      add\n      tag_38\n      jump\t// in\n    tag_946:\n      swap1\n      dup14\n      add\n      mstore\n      0x60\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_949\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_949:\n      0x60\n      dup14\n      add\n      mstore\n      0x80\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_952\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_952:\n      0x80\n      dup14\n      add\n      mstore\n      0xa0\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_955\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_955:\n      0xa0\n      dup14\n      add\n      mstore\n      0xc0\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_958\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_958:\n      0xc0\n      dup14\n      add\n      mstore\n      0xe0\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_961\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_961:\n      0xe0\n      dup14\n      add\n      mstore\n      dup1\n      dup10\n      add\n      mload\n      dup8\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup9\n      tag_964\n      swap2\n      dup12\n      add\n      tag_38\n      jump\t// in\n    tag_964:\n      swap1\n      dup13\n      add\n      mstore\n      dup1\n      dup9\n      add\n      mload\n      dup7\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup8\n      tag_967\n      swap2\n      dup11\n      add\n      tag_38\n      jump\t// in\n    tag_967:\n      swap1\n      dup12\n      add\n      mstore\n      dup1\n      dup8\n      add\n      mload\n      dup6\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup7\n      tag_970\n      swap2\n      dup10\n      add\n      tag_38\n      jump\t// in\n    tag_970:\n      swap1\n      dup11\n      add\n      mstore\n      dup1\n      dup7\n      add\n      mload\n      dup5\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup6\n      tag_973\n      swap2\n      dup9\n      add\n      tag_38\n      jump\t// in\n    tag_973:\n      swap1\n      dup10\n      add\n      mstore\n      dup1\n      dup6\n      add\n      mload\n      dup4\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup5\n      tag_976\n      swap2\n      dup8\n      add\n      tag_38\n      jump\t// in\n    tag_976:\n      swap1\n      dup9\n      add\n      mstore\n      dup1\n      dup5\n      add\n      mload\n      dup3\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup4\n      tag_979\n      swap2\n      dup7\n      add\n      tag_38\n      jump\t// in\n    tag_979:\n      swap1\n      dup8\n      add\n      mstore\n      dup4\n      dup4\n      add\n      mload\n      swap1\n      dup2\n      gt\n      tag_259\n      jumpi\n      tag_982\n      swap3\n      add\n      tag_38\n      jump\t// in\n    tag_982:\n      swap1\n      dup4\n      add\n      mstore\n      dup3\n      add\n      mstore\n      swap1\n      jump\t// out\n    tag_40:\n      not(0x00)\n      dup2\n      eq\n      tag_866\n      jumpi\n      0x01\n      add\n      swap1\n      jump\t// out\n    tag_41:\n      swap2\n      swap1\n      dup3\n      add\n      dup1\n      swap3\n      gt\n      tag_866\n      jumpi\n      jump\t// out\n    tag_42:\n      swap2\n      swap1\n      dup3\n      sub\n      swap2\n      dup3\n      gt\n      tag_866\n      jumpi\n      jump\t// out\n    tag_44:\n      swap1\n      0x20\n      dup3\n      dup3\n      sub\n      slt\n      tag_259\n      jumpi\n      dup2\n      mload\n      sub(shl(0x40, 0x01), 0x01)\n      swap3\n      dup4\n      dup3\n      gt\n      tag_259\n      jumpi\n      add\n      0x0100\n      dup2\n      dup4\n      sub\n      slt\n      tag_259\n      jumpi\n      mload(0x40)\n      swap3\n      tag_995\n      dup5\n      tag_10\n      jump\t// in\n    tag_995:\n      dup2\n      mload\n      dup2\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup4\n      tag_998\n      swap2\n      dup5\n      add\n      tag_38\n      jump\t// in\n    tag_998:\n      dup5\n      mstore\n      0x20\n      dup3\n      add\n      mload\n      0x20\n      dup6\n      add\n      mstore\n      0x40\n      dup3\n      add\n      mload\n      0x40\n      dup6\n      add\n      mstore\n      0x60\n      dup3\n      add\n      mload\n      0x02\n      dup2\n      lt\n      iszero\n      tag_259\n      jumpi\n      0x60\n      dup6\n      add\n      mstore\n      0x80\n      dup3\n      add\n      mload\n      dup2\n      dup2\n      gt\n      tag_259\n      jumpi\n      dup4\n      tag_1003\n      swap2\n      dup5\n      add\n      tag_38\n      jump\t// in\n    tag_1003:\n      0x80\n      dup6\n      add\n      mstore\n      0xa0\n      dup3\n      add\n      mload\n      swap1\n      dup2\n      gt\n      tag_259\n      jumpi\n      0xe0\n      swap3\n      tag_1006\n      swap2\n      dup4\n      add\n      tag_38\n      jump\t// in\n    tag_1006:\n      0xa0\n      dup5\n      add\n      mstore\n      tag_1007\n      0xc0\n      dup3\n      add\n      tag_37\n      jump\t// in\n    tag_1007:\n      0xc0\n      dup5\n      add\n      mstore\n      add\n      mload\n      sub(shl(0x60, 0x01), 0x01)\n      dup2\n      and\n      dup2\n      sub\n      tag_259\n      jumpi\n      0xe0\n      dup3\n      add\n      mstore\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n    tag_45:\n      swap1\n      swap2\n        /* \"contracts/TicketContract.sol\":6781:6791  _ticketIds */\n      0x0a\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      0x00\n      0x40\n      swap3\n      dup4\n      mload\n      swap2\n      tag_1010\n      dup4\n      tag_12\n      jump\t// in\n    tag_1010:\n      dup1\n      dup4\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n      dup7\n      dup2\n      and\n      swap7\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10026:10042  to == address(0) */\n      dup8\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10022:10109  if (to == address(0)) {... */\n      tag_1011\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      0x20\n      swap6\n      dup6\n      dup8\n      mstore\n      dup4\n      dup10\n      dup7\n      keccak256\n      sload\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9165:9183  from != address(0) */\n      swap3\n      dup4\n      iszero\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n      dup1\n      tag_1013\n      jumpi\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n    tag_1014:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup12\n      dup8\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9491:9500  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup10\n      mstore\n      dup11\n      dup8\n      keccak256\n      0x01\n      dup2\n      sload\n      add\n      swap1\n      sstore\n      dup10\n      dup8\n      mstore\n      dup8\n      dup10\n      mstore\n      dup10\n      dup13\n      dup13\n      dup10\n      keccak256\n      swap7\n      shl(0xa0, sub(shl(0x60, 0x01), 0x01))\n      swap8\n      dup3\n      dup10\n      dup3\n      sload\n      and\n      or\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9581:9608  Transfer(from, to, tokenId) */\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n      dup11\n      dup1\n      log4\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10184:10280  if (previousOwner != address(0)) {... */\n      tag_1015\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17038:17052  to.code.length */\n      extcodesize\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n      tag_1017\n      jumpi\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n    tag_1018:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup5\n      dup5\n      dup5\n        /* \"contracts/TicketContract.sol\":6905:6918  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      dup11\n      mload\n      swap3\n      dup4\n      dup1\n      swap3\n      shl(0xe5, 0x05fc0ce1)\n        /* \"contracts/TicketContract.sol\":6905:6929  eventContract.getEvent() */\n      dup3\n      mstore\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_1019\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1021\n        /* \"contracts/TicketContract.sol\":6905:6929  eventContract.getEvent() */\n      dup13\n      dup12\n        /* \"contracts/TicketContract.sol\":6888:7003  abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)) */\n      tag_1022\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x22\n        /* \"contracts/TicketContract.sol\":6905:6929  eventContract.getEvent() */\n      dup14\n        /* \"contracts/TicketContract.sol\":6977:7002  Strings.toString(tokenId) */\n      tag_1023\n        /* \"contracts/TicketContract.sol\":6939:6970  Strings.toString(_ticketTypeId) */\n      tag_1024\n        /* \"contracts/TicketContract.sol\":6905:6929  eventContract.getEvent() */\n      dup16\n      swap10\n      dup15\n      swap10\n      dup11\n      swap2\n      tag_1025\n      jumpi\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n    tag_1026:\n        /* \"contracts/TicketContract.sol\":6905:6932  eventContract.getEvent().id */\n      pop\n      mload\n        /* \"contracts/TicketContract.sol\":6939:6970  Strings.toString(_ticketTypeId) */\n      swap7\n      tag_46\n      jump\t// in\n    tag_1024:\n        /* \"contracts/TicketContract.sol\":6977:7002  Strings.toString(tokenId) */\n      swap2\n      tag_46\n      jump\t// in\n    tag_1023:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      mload\n        /* \"contracts/TicketContract.sol\":6888:7003  abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)) */\n      swap4\n      dup5\n      swap2\n      dup10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1027\n        /* \"contracts/TicketContract.sol\":6888:7003  abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)) */\n      dup2\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap9\n      dup10\n      dup2\n      mload\n      swap4\n      dup5\n      swap3\n      add\n      tag_1\n      jump\t// in\n    tag_1027:\n      dup4\n      add\n      swap1\n      shl(0xf9, 0x1d)\n      swap2\n      dup3\n      dup13\n      dup3\n      add\n      mstore\n      tag_1028\n      dup13\n      dup4\n      mload\n      swap4\n      dup5\n      swap2\n      0x21\n      dup6\n      add\n      swap2\n      add\n      tag_1\n      jump\t// in\n    tag_1028:\n      add\n      swap1\n      0x21\n      dup3\n      add\n      mstore\n      tag_1029\n      dup3\n      mload\n      dup1\n      swap4\n      dup13\n      dup8\n      dup6\n      add\n      swap2\n      add\n      tag_1\n      jump\t// in\n    tag_1029:\n      add\n        /* \"contracts/TicketContract.sol\":6888:7003  abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)) */\n      sub\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x02\n        /* \"contracts/TicketContract.sol\":6888:7003  abi.encodePacked(eventContract.getEvent().id, \":\", Strings.toString(_ticketTypeId), \":\", Strings.toString(tokenId)) */\n      dup2\n      add\n      dup5\n      mstore\n      add\n      dup3\n      tag_13\n      jump\t// in\n    tag_1022:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup13\n      mload\n      swap3\n      dup4\n      swap3\n      dup4\n      swap3\n      mload\n      swap3\n      dup4\n      swap2\n      tag_1\n      jump\t// in\n    tag_1021:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":7035:7056  sha256(bytes(secret)) */\n      sub\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x02\n        /* \"contracts/TicketContract.sol\":7035:7056  sha256(bytes(secret)) */\n      gas\n      staticcall\n      iszero\n      tag_1030\n      jumpi\n      dup8\n      swap2\n      dup11\n      dup9\n      swap3\n      dup7\n      mload\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup13\n      dup7\n      mload\n      swap5\n      tag_1032\n      dup7\n      tag_10\n      jump\t// in\n    tag_1032:\n      dup7\n      dup7\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      dup12\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      dup6\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      dup8\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup3\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      0x60\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      0x80\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      dup5\n      mstore\n      0xa0\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":7248:7263  block.timestamp */\n      swap5\n      timestamp\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup7\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      0xc0\n      dup8\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap9\n      dup12\n      dup11\n      mstore\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      dup14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xe0\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      dup10\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap10\n      0x01\n      dup12\n      mstore\n      dup14\n      mstore\n        /* \"contracts/TicketContract.sol\":7067:7074  tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      mstore\n      dup12\n      keccak256\n      swap7\n      mload\n      dup8\n      sstore\n      mload\n      0x01\n      dup8\n      add\n      sstore\n      dup9\n      0x02\n      dup8\n      add\n      swap3\n      mload\n      and\n      swap1\n      dup3\n      sload\n      and\n      or\n      swap1\n      sstore\n      mload\n      0x03\n      dup5\n      add\n      sstore\n      mload\n      dup8\n      dup4\n      add\n      sstore\n      mload\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9491:9500  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      add\n      sstore\n      0x06\n      add\n      swap2\n      mload\n      iszero\n      iszero\n      tag_1033\n      swap1\n      dup4\n      swap1\n      0xff\n      dup1\n      not\n      dup4\n      sload\n      and\n      swap2\n      iszero\n      iszero\n      and\n      or\n      swap1\n      sstore\n      jump\n    tag_1033:\n      mload\n      iszero\n      iszero\n      dup2\n      sload\n      swap1\n      0x08\n      shl\n      0xff00\n      and\n      swap1\n      not(0xff00)\n      and\n      or\n      swap1\n      sstore\n        /* \"contracts/TicketContract.sol\":6905:6918  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":7336:7400  eventContract.addTicketToListOfTicketType(_ticketTypeId,tokenId) */\n      dup1\n      extcodesize\n      iszero\n      tag_208\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup1\n      swap2\n      0x44\n      dup9\n      mload\n      dup1\n      swap5\n      dup2\n      swap4\n      shl(0xe4, 0x0b382aed)\n        /* \"contracts/TicketContract.sol\":7336:7400  eventContract.addTicketToListOfTicketType(_ticketTypeId,tokenId) */\n      dup4\n      mstore\n      dup14\n      dup10\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      dup11\n      0x24\n      dup5\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":7336:7400  eventContract.addTicketToListOfTicketType(_ticketTypeId,tokenId) */\n      gas\n      call\n      dup1\n      iszero\n      tag_1036\n      jumpi\n      tag_1038\n      jumpi\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n    tag_1039:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup4\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":7414:7434  ticketTypesForTicket */\n      0x16\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      dup7\n      dup6\n      dup3\n      keccak256\n      sstore\n      dup6\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":7525:7554  nbTicketForUserAndTicketTypes */\n      0x17\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      mstore\n      dup5\n      dup2\n      keccak256\n      dup8\n      dup3\n      mstore\n      dup4\n      mstore\n      dup5\n      dup2\n      keccak256\n      sload\n      0x01\n      dup2\n      add\n      dup1\n      swap2\n      gt\n      tag_1040\n      jumpi\n      dup7\n      dup3\n      mstore\n        /* \"contracts/TicketContract.sol\":7525:7554  nbTicketForUserAndTicketTypes */\n      0x17\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      mstore\n      dup6\n      dup3\n      keccak256\n      dup9\n      dup4\n      mstore\n      dup5\n      mstore\n      dup6\n      dup3\n      keccak256\n      sstore\n        /* \"contracts/TicketContract.sol\":6781:6791  _ticketIds */\n      0x0a\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      swap2\n      0x01\n      dup4\n      add\n      dup1\n      swap4\n      gt\n      tag_1042\n      jumpi\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":6781:6791  _ticketIds */\n      0x0a\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sstore\n      dup3\n      mload\n      swap5\n      dup6\n      mstore\n      dup5\n      add\n      mstore\n      dup3\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":7624:7660  NewTicket(_ticketTypeId,tokenId,_to) */\n      0x756915dc79fbe0544cde2132b389579561b584214b5ba2644e80d0bbb565047c\n      swap1\n        /* \"contracts/TicketContract.sol\":7086:7322  Ticket(... */\n      0x60\n      swap1\n        /* \"contracts/TicketContract.sol\":7624:7660  NewTicket(_ticketTypeId,tokenId,_to) */\n      log1\n        /* \"contracts/TicketContract.sol\":6665:7667  function mintTicket(address _to, uint256 _ticketTypeId,uint256 _pricePerTicket) internal{... */\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_1042:\n      shl(0xe0, 0x4e487b71)\n      dup3\n      mstore\n      0x11\n      swap1\n      mstore\n      0x24\n      swap1\n      revert\n    tag_1040:\n      pop\n      0x11\n      0x24\n      swap3\n      shl(0xe0, 0x4e487b71)\n      dup4\n      mstore\n      mstore\n      revert\n        /* \"contracts/TicketContract.sol\":7336:7400  eventContract.addTicketToListOfTicketType(_ticketTypeId,tokenId) */\n    tag_1038:\n      tag_1044\n      swap1\n      tag_9\n      jump\t// in\n    tag_1044:\n      0x00\n      jump(tag_1039)\n    tag_1036:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup7\n      mload\n      returndatasize\n      dup5\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":7035:7056  sha256(bytes(secret)) */\n    tag_1030:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      mload\n      returndatasize\n      dup6\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":6905:6929  eventContract.getEvent() */\n    tag_1025:\n      tag_1045\n      swap2\n      pop\n      returndatasize\n      dup1\n      dup13\n      dup4\n      returndatacopy\n      tag_1046\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1046:\n      dup2\n      add\n      swap1\n      tag_44\n      jump\t// in\n    tag_1045:\n      0x00\n      jump(tag_1026)\n    tag_1019:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup10\n      mload\n      returndatasize\n      dup8\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n    tag_1017:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      tag_1047\n      dup8\n      dup10\n      swap8\n      dup13\n      dup5\n      swap15\n      swap11\n      swap16\n      swap12\n      dup10\n      dup15\n      mload\n      dup1\n      swap7\n      dup2\n      swap6\n      dup3\n      swap5\n      shl(0xe1, 0x0a85bd01)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      swap11\n      dup12\n      dup6\n      mstore\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      swap1\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      dup5\n      0x24\n      dup6\n      add\n      mstore\n      0x44\n      dup5\n      add\n      mstore\n      0x80\n      0x64\n      dup5\n      add\n      mstore\n      0x84\n      dup4\n      add\n      swap1\n      tag_2\n      jump\t// in\n    tag_1047:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      sub\n      swap3\n      gas\n      call\n      dup7\n      swap2\n      dup2\n      tag_1048\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n    tag_1049:\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17688  try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n      tag_1050\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17335:17688  catch (bytes memory reason) {... */\n      dup13\n      dup13\n      dup13\n      dup13\n      tag_1052\n      tag_25\n      jump\t// in\n    tag_1052:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      mload\n      swap5\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17385:17403  reason.length == 0 */\n      dup6\n      tag_1053\n      jumpi\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      shl(0xe1, 0x32505749)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17434:17459  ERC721InvalidReceiver(to) */\n      dup2\n      mstore\n      swap2\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      swap2\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17434:17459  ERC721InvalidReceiver(to) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17381:17674  if (reason.length == 0) {... */\n    tag_1053:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17561:17656  assembly {... */\n      dup6\n      swap3\n      pop\n      add\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17072:17688  try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {... */\n    tag_1050:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap8\n      swap12\n      swap7\n      swap11\n      swap6\n      swap8\n      not(sub(shl(0xe0, 0x01), 0x01))\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17194:17245  retval != IERC721Receiver.onERC721Received.selector */\n      sub\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17320  if (retval != IERC721Receiver.onERC721Received.selector) {... */\n      tag_1055\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17034:17698  if (to.code.length > 0) {... */\n      0x00\n      jump(tag_1018)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17190:17320  if (retval != IERC721Receiver.onERC721Received.selector) {... */\n    tag_1055:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      mload\n      shl(0xe1, 0x32505749)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17276:17301  ERC721InvalidReceiver(to) */\n      dup2\n      mstore\n      dup1\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup11\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17276:17301  ERC721InvalidReceiver(to) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n    tag_1048:\n      swap1\n      swap2\n      pop\n      dup14\n      dup2\n      dup2\n      returndatasize\n      dup4\n      gt\n      tag_1057\n      jumpi\n    tag_1058:\n      tag_1059\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1059:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_486\n      jumpi\n      mload\n      not(sub(shl(0xe0, 0x01), 0x01))\n      dup2\n      and\n      dup2\n      sub\n      tag_486\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":17076:17147  IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) */\n      swap1\n      0x00\n      jump(tag_1049)\n    tag_1057:\n      pop\n      returndatasize\n      jump(tag_1058)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10184:10280  if (previousOwner != address(0)) {... */\n    tag_1015:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup10\n      mload\n      shl(0xe1, 0x39e35637)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10238:10269  ERC721InvalidSender(address(0)) */\n      dup2\n      mstore\n      dup1\n      dup9\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10238:10269  ERC721InvalidSender(address(0)) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n    tag_1013:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      dup11\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15350:15365  _tokenApprovals */\n      0x06\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      dup1\n      sload\n      not(sub(shl(0xa0, 0x01), 0x01))\n      and\n      swap1\n      sstore\n      dup5\n      dup8\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9372:9381  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup10\n      mstore\n      dup11\n      dup8\n      keccak256\n      dup1\n      sload\n      not(0x00)\n      add\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n      jump(tag_1014)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10022:10109  if (to == address(0)) {... */\n    tag_1011:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup7\n      mload\n      shl(0xe1, 0x32505749)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10065:10098  ERC721InvalidReceiver(address(0)) */\n      dup2\n      mstore\n      0x04\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":10065:10098  ERC721InvalidReceiver(address(0)) */\n      revert\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_46:\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":759:776  Math.log10(value) */\n      dup1\n      0x00\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12351:12359  10 ** 64 */\n      swap2\n      0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12342:12359  value >= 10 ** 64 */\n      dup1\n      dup3\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12338:12441  if (value >= 10 ** 64) {... */\n      tag_1065\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1066:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12467:12475  10 ** 32 */\n      pop\n      0x04ee2d6d415b85acef8100000000\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12458:12475  value >= 10 ** 32 */\n      dup1\n      dup4\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12454:12557  if (value >= 10 ** 32) {... */\n      tag_1067\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1068:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12583:12591  10 ** 16 */\n      pop\n      0x2386f26fc10000\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12574:12591  value >= 10 ** 16 */\n      dup1\n      dup4\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12570:12673  if (value >= 10 ** 16) {... */\n      tag_1069\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1070:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12699:12706  10 ** 8 */\n      pop\n      0x05f5e100\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12690:12706  value >= 10 ** 8 */\n      dup1\n      dup4\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12686:12786  if (value >= 10 ** 8) {... */\n      tag_1071\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1072:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12812:12819  10 ** 4 */\n      pop\n      0x2710\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12803:12819  value >= 10 ** 4 */\n      dup1\n      dup4\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12799:12899  if (value >= 10 ** 4) {... */\n      tag_1073\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1074:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12916:12932  value >= 10 ** 2 */\n      pop\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12925:12932  10 ** 2 */\n      0x64\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12916:12932  value >= 10 ** 2 */\n      dup3\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12912:13012  if (value >= 10 ** 2) {... */\n      tag_1075\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1076:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13038:13045  10 ** 1 */\n      0x0a\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13029:13045  value >= 10 ** 1 */\n      dup1\n      swap3\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13025:13091  if (value >= 10 ** 1) {... */\n      tag_1077\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n    tag_1078:\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":779:780  1 */\n      0x01\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup2\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":921:997  assembly {... */\n      0x21\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup7\n      add\n      swap6\n      tag_1079\n      dup8\n      tag_15\n      jump\t// in\n    tag_1079:\n      swap7\n      tag_1080\n      mload(0x40)\n      swap9\n      dup10\n      tag_13\n      jump\t// in\n    tag_1080:\n      dup1\n      dup9\n      mstore\n      tag_1081\n      not(0x1f)\n      swap2\n      tag_15\n      jump\t// in\n    tag_1081:\n      add\n      calldatasize\n      0x20\n      dup10\n      add\n      calldatacopy\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":921:997  assembly {... */\n      dup7\n      add\n      add\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292  while (true) {... */\n      swap1\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":779:780  1 */\n    tag_1082:\n      tag_1083\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292  while (true) {... */\n    tag_1084:\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1305:1318  return buffer */\n      pop\n      pop\n      pop\n      pop\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":637:1335  function toString(uint256 value) internal pure returns (string memory) {... */\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292  while (true) {... */\n    tag_1083:\n      not(0x00)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      swap1\n      dup4\n      swap1\n      shl(0x81, 0x181899199a1a9b1b9c1cb0b131b232b3)\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1115:1210  assembly {... */\n      dup3\n      dup3\n      mod\n      byte\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1115:1210  assembly {... */\n      mstore8\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      div\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1227:1238  value /= 10 */\n      swap2\n      dup3\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1260:1270  value == 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1256:1277  if (value == 0) break */\n      tag_1085\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1010:1292  while (true) {... */\n      swap2\n      swap1\n      dup3\n      jump(tag_1082)\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1256:1277  if (value == 0) break */\n    tag_1085:\n        /* \"@openzeppelin/contracts/utils/Strings.sol\":1272:1277  break */\n      jump(tag_1084)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13025:13091  if (value >= 10 ** 1) {... */\n    tag_1077:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13075:13076  1 */\n      0x01\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":13025:13091  if (value >= 10 ** 1) {... */\n      swap2\n      jump(tag_1078)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12912:13012  if (value >= 10 ** 2) {... */\n    tag_1075:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap1\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12925:12932  10 ** 2 */\n      0x64\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12996:12997  2 */\n      0x02\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      div\n      swap2\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12912:13012  if (value >= 10 ** 2) {... */\n      swap2\n      jump(tag_1076)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12799:12899  if (value >= 10 ** 4) {... */\n    tag_1073:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12883:12884  4 */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap4\n      swap3\n      div\n      swap2\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12799:12899  if (value >= 10 ** 4) {... */\n      swap2\n      0x00\n      jump(tag_1074)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12686:12786  if (value >= 10 ** 8) {... */\n    tag_1071:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12770:12771  8 */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap4\n      swap3\n      div\n      swap2\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12686:12786  if (value >= 10 ** 8) {... */\n      swap2\n      0x00\n      jump(tag_1072)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12570:12673  if (value >= 10 ** 16) {... */\n    tag_1069:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12656:12658  16 */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap4\n      swap3\n      div\n      swap2\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12570:12673  if (value >= 10 ** 16) {... */\n      swap2\n      0x00\n      jump(tag_1070)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12454:12557  if (value >= 10 ** 32) {... */\n    tag_1067:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12540:12542  32 */\n      0x20\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap4\n      swap3\n      div\n      swap2\n      add\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12454:12557  if (value >= 10 ** 32) {... */\n      swap2\n      0x00\n      jump(tag_1068)\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12338:12441  if (value >= 10 ** 64) {... */\n    tag_1065:\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12424:12426  64 */\n      0x40\n      swap4\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      div\n      swap2\n      pop\n        /* \"@openzeppelin/contracts/utils/math/Math.sol\":12338:12441  if (value >= 10 ** 64) {... */\n      0x00\n      jump(tag_1066)\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n    tag_47:\n        /* \"contracts/TicketContract.sol\":7830:7843  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      mload(0x40)\n      shl(0xe0, 0xc1665499)\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      dup2\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      swap2\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      0x20\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      swap1\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      0x04\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      swap1\n      dup8\n      and\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_1089\n      jumpi\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n    tag_1090:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x24\n      0x00\n      swap3\n      mload(0x40)\n      swap5\n      dup6\n      swap4\n      dup5\n      swap3\n      shl(0xe2, 0x22b76fcf)\n        /* \"contracts/TicketContract.sol\":7810:7901  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      dup5\n      mstore\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      0x04\n        /* \"contracts/TicketContract.sol\":7810:7901  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      and\n        /* \"contracts/TicketContract.sol\":7810:7901  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_1093\n      jumpi\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n    tag_1094:\n        /* \"contracts/TicketContract.sol\":7936:7961  theTicketType.ticketPrice */\n      pop\n      0x60\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":7983:8005  theTicketType.earlyBid */\n      swap1\n      0x0160\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":7979:8197  if (theTicketType.earlyBid){... */\n      tag_1095\n      jumpi\n        /* \"contracts/TicketContract.sol\":8206:8227  return pricePerTicket */\n      pop\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":7979:8197  if (theTicketType.earlyBid){... */\n    tag_1095:\n        /* \"contracts/TicketContract.sol\":8024:8053  theTicketType.discountEndDate */\n      0x01a0\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":8056:8071  block.timestamp */\n      timestamp\n      lt\n        /* \"contracts/TicketContract.sol\":8020:8187  if (theTicketType.discountEndDate > block.timestamp){... */\n      tag_1097\n      jumpi\n        /* \"contracts/TicketContract.sol\":8206:8227  return pricePerTicket */\n      pop\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":8020:8187  if (theTicketType.discountEndDate > block.timestamp){... */\n    tag_1097:\n        /* \"contracts/TicketContract.sol\":8145:8172  theTicketType.discountPrice */\n      0x0180\n      swap2\n      pop\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":7810:7901  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n    tag_1093:\n      tag_1099\n      swap2\n      returndatasize\n      dup1\n      swap2\n      dup4\n      returndatacopy\n      tag_482\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1099:\n      0x00\n      jump(tag_1094)\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n    tag_1089:\n      swap1\n      0x20\n      dup3\n      returndatasize\n      dup3\n      gt\n      tag_1101\n      jumpi\n    tag_1102:\n      dup2\n      tag_1103\n      0x20\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_1103:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_164\n      jumpi\n      pop\n      swap1\n      0x24\n      tag_1106\n      0x00\n      swap4\n      tag_35\n      jump\t// in\n    tag_1106:\n        /* \"contracts/TicketContract.sol\":7830:7867  eventContract.getTicketTypeContract() */\n      swap2\n      swap3\n      pop\n      jump(tag_1090)\n    tag_1101:\n      returndatasize\n      swap2\n      pop\n      jump(tag_1102)\n        /* \"contracts/TicketContract.sol\":15455:17222  function tokenURI(uint256 _tokenId)... */\n    tag_48:\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":15622:15654  _ownerOf(_tokenId) != address(0) */\n      iszero\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1107\n      jumpi\n      dup1\n      0x00\n      mstore\n        /* \"contracts/TicketContract.sol\":15843:15850  tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      keccak256(0x00, 0x40)\n      mload(0x40)\n      tag_1109\n      dup2\n      tag_10\n      jump\t// in\n    tag_1109:\n      dup2\n      sload\n      dup2\n      mstore\n      0xe0\n      0xff\n      0x06\n      0x01\n      dup6\n      add\n      sload\n      swap5\n      0x20\n      dup6\n      add\n      swap6\n      dup7\n      mstore\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      0x02\n      dup3\n      add\n      sload\n      and\n      0x40\n      dup7\n      add\n      mstore\n      0x03\n      dup2\n      add\n      sload\n      0x60\n      dup7\n      add\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      add\n      sload\n      0x80\n      dup7\n      add\n      mstore\n      0x05\n      dup2\n      add\n      sload\n      0xa0\n      dup7\n      add\n      mstore\n      add\n      sload\n      dup2\n      dup2\n      and\n      iszero\n      iszero\n      0xc0\n      dup6\n      add\n      mstore\n      0x08\n      shr\n      and\n      iszero\n      iszero\n      swap2\n      add\n      mstore\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n        /* \"contracts/TicketContract.sol\":15940:15953  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      swap1\n      mload(0x40)\n      swap1\n      shl(0xe0, 0xc1665499)\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      dup3\n      mstore\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      dup3\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      dup2\n      dup7\n      gas\n      staticcall\n      swap2\n      dup3\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap3\n      tag_1112\n      jumpi\n        /* \"contracts/TicketContract.sol\":15455:17222  function tokenURI(uint256 _tokenId)... */\n    tag_1113:\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      mload(0x40)\n      shl(0xe2, 0x22b76fcf)\n        /* \"contracts/TicketContract.sol\":15920:16020  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(theTicket.ticketTypeId) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":15920:16020  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(theTicket.ticketTypeId) */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap1\n      swap2\n      mstore\n      swap1\n      0x00\n      swap1\n      dup3\n      swap1\n      0x24\n      swap1\n      dup3\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      and\n        /* \"contracts/TicketContract.sol\":15920:16020  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(theTicket.ticketTypeId) */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_1116\n      jumpi\n        /* \"contracts/TicketContract.sol\":15455:17222  function tokenURI(uint256 _tokenId)... */\n    tag_1117:\n        /* \"contracts/TicketContract.sol\":16030:16049  bool canReveal=true */\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"contracts/TicketContract.sol\":16064:16086  theTicketType.revealed */\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xc0\n        /* \"contracts/TicketContract.sol\":16064:16086  theTicketType.revealed */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n        /* \"contracts/TicketContract.sol\":16059:16316  if (!theTicketType.revealed){... */\n      tag_1118\n      jumpi\n        /* \"contracts/TicketContract.sol\":15455:17222  function tokenURI(uint256 _tokenId)... */\n    tag_1119:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      0x00\n      mstore\n        /* \"contracts/TicketContract.sol\":16340:16357  ticketSpecificUri */\n      0x15\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      tag_1120\n      sload(keccak256(0x00, 0x40))\n      tag_8\n      jump\t// in\n    tag_1120:\n        /* \"contracts/TicketContract.sol\":16334:16377  bytes(ticketSpecificUri[_tokenId]).length>0 */\n      iszero\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1121\n      jumpi\n      pop\n      pop\n      pop\n      0x00\n      mstore\n        /* \"contracts/TicketContract.sol\":16340:16357  ticketSpecificUri */\n      0x15\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      tag_831\n      keccak256(0x00, 0x40)\n      tag_14\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":16330:17207  if (bytes(ticketSpecificUri[_tokenId]).length>0){... */\n    tag_1121:\n        /* \"contracts/TicketContract.sol\":16666:16690  theTicketType.templateId */\n      0x01c0\n      dup2\n      swap5\n      swap3\n      swap4\n      swap5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":16750:16773  theTicketType.hiddenuri */\n      swap4\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n      0x00\n        /* \"contracts/TicketContract.sol\":16750:16773  theTicketType.hiddenuri */\n      0x0260\n      dup5\n      add\n      mload\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      mload(0x40)\n      swap3\n      dup4\n      dup1\n      swap3\n      shl(0xe5, 0x05fc0ce1)\n        /* \"contracts/TicketContract.sol\":16799:16823  eventContract.getEvent() */\n      dup3\n      mstore\n      gas\n      staticcall\n      dup1\n      iszero\n      tag_876\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":16799:16823  eventContract.getEvent() */\n      swap2\n      0x00\n      swap2\n      tag_1126\n      jumpi\n        /* \"contracts/TicketContract.sol\":16330:17207  if (bytes(ticketSpecificUri[_tokenId]).length>0){... */\n    tag_1127:\n        /* \"contracts/TicketContract.sol\":16799:16833  eventContract.getEvent().eventDate */\n      pop\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":16859:16889  theTicketType.ticketDesignInfo */\n      0x02a0\n      dup4\n      add\n      mload\n        /* \"contracts/TicketContract.sol\":16915:16938  theTicketType.freeDrink */\n      swap1\n      0x0200\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n        /* \"contracts/TicketContract.sol\":16964:16991  theTicketType.priorityQueue */\n      swap3\n      0x0220\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n        /* \"contracts/TicketContract.sol\":17017:17039  theTicketType.sellable */\n      swap5\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x0100\n        /* \"contracts/TicketContract.sol\":17017:17039  theTicketType.sellable */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n      swap6\n      mload(0x40)\n      swap9\n      tag_1128\n      dup11\n      tag_10\n      jump\t// in\n    tag_1128:\n      dup10\n      mstore\n      0x20\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup10\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x40\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup9\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x60\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup8\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x80\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup7\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0xa0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup6\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0xc0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0xe0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      shl(0xa0, 0x01)\n      0x01\n      swap1\n      sub\n        /* \"contracts/TicketContract.sol\":17106:17125  nftTemplateContract */\n      0x13\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      swap1\n      mload(0x40)\n      dup1\n      swap4\n      dup2\n      swap3\n      shl(0xe5, 0x03605e0d)\n        /* \"contracts/TicketContract.sol\":17106:17172  nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal) */\n      dup4\n      mstore\n        /* \"contracts/TicketContract.sol\":17141:17145  this */\n      address\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":17106:17172  nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal) */\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup4\n      add\n      0x60\n      swap1\n      mstore\n      dup2\n      mload\n      0x64\n      dup5\n      add\n      mstore\n      0x20\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      0x84\n      dup5\n      add\n      mstore\n      0x40\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      0xa4\n      dup5\n      add\n      0x0100\n      swap1\n      mstore\n      0x0164\n      dup5\n      add\n      tag_1129\n      swap2\n      tag_2\n      jump\t// in\n    tag_1129:\n      0x60\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      0xc4\n      dup6\n      add\n      mstore\n      0x80\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup4\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      not(0x63)\n      dup6\n      dup4\n      sub\n      add\n      0xe4\n      dup7\n      add\n      mstore\n      dup1\n      mload\n      0x01e0\n      dup1\n      dup5\n      mstore\n      dup4\n      add\n      tag_1130\n      swap2\n      tag_2\n      jump\t// in\n    tag_1130:\n      0x20\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0x20\n      dup6\n      add\n      mstore\n      tag_1131\n      swap2\n      tag_2\n      jump\t// in\n    tag_1131:\n      0x40\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0x40\n      dup6\n      add\n      mstore\n      tag_1132\n      swap2\n      tag_2\n      jump\t// in\n    tag_1132:\n      0x60\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0x60\n      dup6\n      add\n      mstore\n      tag_1133\n      swap2\n      tag_2\n      jump\t// in\n    tag_1133:\n      0x80\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0x80\n      dup6\n      add\n      mstore\n      tag_1134\n      swap2\n      tag_2\n      jump\t// in\n    tag_1134:\n      0xa0\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0xa0\n      dup6\n      add\n      mstore\n      tag_1135\n      swap2\n      tag_2\n      jump\t// in\n    tag_1135:\n      0xc0\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0xc0\n      dup6\n      add\n      mstore\n      tag_1136\n      swap2\n      tag_2\n      jump\t// in\n    tag_1136:\n      0xe0\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0xe0\n      dup6\n      add\n      mstore\n      tag_1137\n      swap2\n      tag_2\n      jump\t// in\n    tag_1137:\n      0x0100\n      dup3\n      add\n      mload\n      swap1\n      dup4\n      dup2\n      sub\n      0x0100\n      dup6\n      add\n      mstore\n      tag_1138\n      swap2\n      tag_2\n      jump\t// in\n    tag_1138:\n      0x0120\n      swap1\n      dup2\n      dup4\n      add\n      mload\n      swap2\n      dup5\n      dup3\n      sub\n      swap1\n      dup6\n      add\n      mstore\n      tag_1139\n      swap2\n      tag_2\n      jump\t// in\n    tag_1139:\n      0x0140\n      swap1\n      dup2\n      dup4\n      add\n      mload\n      swap2\n      dup5\n      dup3\n      sub\n      swap1\n      dup6\n      add\n      mstore\n      tag_1140\n      swap2\n      tag_2\n      jump\t// in\n    tag_1140:\n      0x0160\n      swap1\n      dup2\n      dup4\n      add\n      mload\n      swap2\n      dup5\n      dup3\n      sub\n      swap1\n      dup6\n      add\n      mstore\n      tag_1141\n      swap2\n      tag_2\n      jump\t// in\n    tag_1141:\n      0x0180\n      swap1\n      dup2\n      dup4\n      add\n      mload\n      swap2\n      dup5\n      dup3\n      sub\n      swap1\n      dup6\n      add\n      mstore\n      tag_1142\n      swap2\n      tag_2\n      jump\t// in\n    tag_1142:\n      0x01a0\n      swap1\n      dup2\n      dup4\n      add\n      mload\n      swap2\n      dup5\n      dup3\n      sub\n      swap1\n      dup6\n      add\n      mstore\n      tag_1143\n      swap2\n      tag_2\n      jump\t// in\n    tag_1143:\n      swap1\n        /* \"contracts/TicketContract.sol\":16666:16690  theTicketType.templateId */\n      0x01c0\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      mload\n      swap2\n      dup1\n      dup3\n      sub\n      swap1\n        /* \"contracts/TicketContract.sol\":16666:16690  theTicketType.templateId */\n      0x01c0\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      mstore\n      tag_1144\n      swap2\n      tag_2\n      jump\t// in\n    tag_1144:\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      swap2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xa0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n      0x0104\n      dup6\n      add\n      mstore\n      0xc0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n      0x0124\n      dup6\n      add\n      mstore\n      0xe0\n        /* \"contracts/TicketContract.sol\":16612:17080  TixSellLibrary.NftTicketInfo(... */\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      iszero\n      0x0144\n      dup5\n      add\n      mstore\n      iszero\n      iszero\n      0x44\n      dup4\n      add\n      mstore\n        /* \"contracts/TicketContract.sol\":17106:17172  nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal) */\n      sub\n      dup2\n      gas\n      swap4\n      0x00\n      swap5\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_876\n      jumpi\n      0x00\n      swap2\n      tag_1147\n      jumpi\n        /* \"contracts/TicketContract.sol\":17099:17172  return nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal) */\n      pop\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":17106:17172  nftTemplateContract.getURI(address(this),_nftTicketInfo,canReveal) */\n    tag_1147:\n      swap1\n      pop\n      returndatasize\n      dup1\n      0x00\n      dup4\n      returndatacopy\n      tag_1149\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1149:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      dup3\n      dup3\n      sub\n      slt\n      tag_259\n      jumpi\n      dup2\n      mload\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_259\n      jumpi\n      tag_831\n      swap3\n      add\n      tag_38\n      jump\t// in\n        /* \"contracts/TicketContract.sol\":16799:16823  eventContract.getEvent() */\n    tag_1126:\n      tag_1155\n      swap2\n      pop\n      returndatasize\n      dup1\n      0x00\n      dup4\n      returndatacopy\n      tag_1046\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1155:\n      0x00\n      jump(tag_1127)\n        /* \"contracts/TicketContract.sol\":16059:16316  if (!theTicketType.revealed){... */\n    tag_1118:\n        /* \"contracts/TicketContract.sol\":16139:16168  theTicketType.revealStartDate */\n      swap1\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xe0\n        /* \"contracts/TicketContract.sol\":16139:16168  theTicketType.revealStartDate */\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n        /* \"contracts/TicketContract.sol\":16171:16186  block.timestamp */\n      timestamp\n      gt\n        /* \"contracts/TicketContract.sol\":16135:16306  if (theTicketType.revealStartDate < block.timestamp){... */\n      0x00\n        /* \"contracts/TicketContract.sol\":16171:16186  block.timestamp */\n      eq\n      tag_1157\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"contracts/TicketContract.sol\":16135:16306  if (theTicketType.revealStartDate < block.timestamp){... */\n      swap1\n        /* \"contracts/TicketContract.sol\":16059:16316  if (!theTicketType.revealed){... */\n      jump(tag_1119)\n        /* \"contracts/TicketContract.sol\":16135:16306  if (theTicketType.revealStartDate < block.timestamp){... */\n    tag_1157:\n      0x00\n      swap1\n        /* \"contracts/TicketContract.sol\":16059:16316  if (!theTicketType.revealed){... */\n      jump(tag_1119)\n        /* \"contracts/TicketContract.sol\":15920:16020  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(theTicket.ticketTypeId) */\n    tag_1116:\n      tag_1160\n      swap2\n      pop\n      returndatasize\n      dup1\n      0x00\n      dup4\n      returndatacopy\n      tag_482\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1160:\n      0x00\n      jump(tag_1117)\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n    tag_1112:\n      swap1\n      swap2\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      dup2\n      returndatasize\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      gt\n      tag_1162\n      jumpi\n    tag_1163:\n      dup2\n      tag_1164\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      swap4\n      dup4\n      tag_13\n      jump\t// in\n    tag_1164:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_259\n      jumpi\n      tag_1167\n      0x00\n      swap2\n      tag_35\n      jump\t// in\n    tag_1167:\n        /* \"contracts/TicketContract.sol\":15940:15977  eventContract.getTicketTypeContract() */\n      swap2\n      swap1\n      jump(tag_1113)\n    tag_1162:\n      returndatasize\n      swap2\n      pop\n      jump(tag_1163)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_1107:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":5803:5810  _owners */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      add\n      mstore\n      0x2f\n      0x24\n      dup3\n      add\n      mstore\n      0x4552433732314d657461646174613a2055524920717565727920666f72206e6f\n      0x44\n      dup3\n      add\n      mstore\n      shl(0x89, 0x3732bc34b9ba32b73a103a37b5b2b7)\n      0x64\n      dup3\n      add\n      mstore\n      0x84\n      swap1\n      revert\n    tag_49:\n      sub(shl(0x40, 0x01), 0x01)\n      dup2\n      gt\n      tag_804\n      jumpi\n      0x05\n      shl\n      0x20\n      add\n      swap1\n      jump\t// out\n    tag_50:\n      dup1\n      mload\n      dup3\n      lt\n      iszero\n      tag_798\n      jumpi\n      0x20\n      swap2\n      0x05\n      shl\n      add\n      add\n      swap1\n      jump\t// out\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_51:\n      swap1\n      swap3\n      swap2\n      swap3\n      0x00\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      dup1\n      dup6\n      mstore\n      0x20\n      dup1\n      swap2\n        /* \"contracts/TicketContract.sol\":18292:18299  tickets */\n      0x14\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      mstore\n      0x40\n      dup1\n      dup9\n      keccak256\n      swap5\n        /* \"contracts/TicketContract.sol\":18386:18406  ticketTypesForTicket */\n      0x16\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      mstore\n      dup2\n      dup10\n      keccak256\n      sload\n      swap1\n      dup10\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap3\n      dup4\n        /* \"contracts/TicketContract.sol\":18528:18541  eventContract */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sload\n      and\n      swap1\n      dup6\n      mload\n      swap9\n      dup10\n      dup1\n      swap4\n      shl(0xe0, 0xc1665499)\n        /* \"contracts/TicketContract.sol\":18528:18565  eventContract.getTicketTypeContract() */\n      dup3\n      mstore\n      0x04\n      swap12\n      dup13\n      swap2\n      gas\n      staticcall\n      swap2\n      dup3\n      iszero\n      tag_1172\n      jumpi\n      swap1\n      dup4\n      swap3\n      swap2\n      dup7\n      swap5\n      swap3\n      tag_1174\n      jumpi\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_1175:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x24\n      swap1\n      dup8\n      mload\n      swap5\n      dup6\n      swap4\n      dup5\n      swap3\n      shl(0xe2, 0x22b76fcf)\n        /* \"contracts/TicketContract.sol\":18508:18599  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      dup5\n      mstore\n      dup14\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      and\n        /* \"contracts/TicketContract.sol\":18508:18599  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n      gas\n      staticcall\n      swap1\n      dup2\n      iszero\n      tag_1176\n      jumpi\n      swap1\n      dup4\n      swap3\n      swap2\n      dup13\n      swap2\n      tag_1178\n      jumpi\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_1179:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      0x00\n      dup1\n      mload\n      0x20\n      data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8\n      dup4\n      codecopy\n      dup2\n      mload\n      swap2\n      mstore\n      dup13\n      mstore\n        /* \"@openzeppelin/contracts/access/AccessControl.sol\":2954:2960  _roles */\n      0x09\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup8\n      mstore\n      dup5\n      dup13\n      keccak256\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup14\n      mstore\n      dup8\n      mstore\n      0xff\n      dup6\n      dup14\n      keccak256\n      sload\n      and\n      iszero\n        /* \"contracts/TicketContract.sol\":18609:18722  if (hasRole(ADMIN_ROLE, msg.sender)==false){... */\n      tag_1180\n      jumpi\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_1181:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4241:4257  to == address(0) */\n      swap7\n      dup8\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4237:4324  if (to == address(0)) {... */\n      tag_1182\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      dup11\n      mstore\n      dup6\n      dup6\n      mstore\n      dup2\n      dup4\n      dup12\n      keccak256\n      sload\n      and\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      swap5\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9039:9057  auth != address(0) */\n      iszero\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9121  if (auth != address(0)) {... */\n      dup1\n      tag_1184\n      jumpi\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_1185:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9165:9183  from != address(0) */\n      pop\n      dup9\n      dup7\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9581:9608  Transfer(from, to, tokenId) */\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9165:9183  from != address(0) */\n      dup3\n      swap13\n      swap14\n      dup11\n      dup10\n      swap6\n      dup5\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n      tag_1186\n      jumpi\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n    tag_1187:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup6\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9491:9500  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mstore\n      dup10\n      dup4\n      keccak256\n      0x01\n      dup2\n      sload\n      add\n      swap1\n      sstore\n      dup7\n      dup4\n      mstore\n      mstore\n      dup8\n      dup2\n      keccak256\n      shl(0xa0, sub(shl(0x60, 0x01), 0x01))\n      swap15\n      dup16\n      dup3\n      sload\n      and\n      or\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9581:9608  Transfer(from, to, tokenId) */\n      dup1\n      log4\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4614:4635  previousOwner != from */\n      swap1\n      dup2\n      dup5\n      sub\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4610:4719  if (previousOwner != from) {... */\n      tag_1188\n      jumpi\n        /* \"contracts/TicketContract.sol\":18840:18855  theTicket.owner */\n      pop\n      pop\n      pop\n      pop\n      pop\n      0x02\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup3\n      sload\n      and\n      or\n      swap1\n      sstore\n        /* \"contracts/TicketContract.sol\":18134:18885  function transferFrom(... */\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4610:4719  if (previousOwner != from) {... */\n    tag_1188:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      shl(0xe0, 0x64283d7b)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4658:4708  ERC721IncorrectOwner(from, tokenId, previousOwner) */\n      dup2\n      mstore\n      swap4\n      dup5\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n      0x24\n      dup4\n      add\n      mstore\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap2\n      pop\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4658:4708  ERC721IncorrectOwner(from, tokenId, previousOwner) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n    tag_1186:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x00\n      dup8\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":15350:15365  _tokenApprovals */\n      0x06\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      dup1\n      sload\n      not(sub(shl(0xa0, 0x01), 0x01))\n      and\n      swap1\n      sstore\n      dup5\n      dup4\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9372:9381  _balances */\n      0x05\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mstore\n      dup10\n      dup4\n      keccak256\n      dup1\n      sload\n      not(0x00)\n      add\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9161:9417  if (from != address(0)) {... */\n      jump(tag_1187)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9121  if (auth != address(0)) {... */\n    tag_1184:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6518:6645  spender != address(0) &&... */\n      dup1\n      tag_1191\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9121  if (auth != address(0)) {... */\n    tag_1192:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7197:7236  !_isAuthorized(owner, spender, tokenId) */\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7193:7448  if (!_isAuthorized(owner, spender, tokenId)) {... */\n      tag_1193\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":9035:9121  if (auth != address(0)) {... */\n      0x00\n      jump(tag_1185)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7193:7448  if (!_isAuthorized(owner, spender, tokenId)) {... */\n    tag_1193:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7256:7275  owner == address(0) */\n      dup5\n      dup8\n      dup6\n      dup9\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1195\n      jumpi\n      swap2\n      0x24\n      swap3\n      mload\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":16313:16344  ERC721NonexistentToken(tokenId) */\n      swap2\n      shl(0xe0, 0x7e273289)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7302:7333  ERC721NonexistentToken(tokenId) */\n      dup4\n      mstore\n      dup3\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7302:7333  ERC721NonexistentToken(tokenId) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7252:7438  if (owner == address(0)) {... */\n    tag_1195:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      shl(0xe0, 0x177e802f)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7379:7423  ERC721InsufficientApproval(spender, tokenId) */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7379:7423  ERC721InsufficientApproval(spender, tokenId) */\n      swap2\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup3\n      mstore\n      0x20\n      dup3\n      add\n      swap3\n      swap1\n      swap3\n      mstore\n      dup2\n      swap1\n      0x40\n      add\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":7379:7423  ERC721InsufficientApproval(spender, tokenId) */\n      sub\n      swap1\n      revert\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6518:6645  spender != address(0) &&... */\n    tag_1191:\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      pop\n      caller\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6572  owner == spender */\n      dup7\n      eq\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6608  owner == spender || isApprovedForAll(owner, spender) */\n      dup1\n      iszero\n      tag_1198\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6518:6645  spender != address(0) &&... */\n    tag_1199:\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6644  owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender */\n      dup1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6518:6645  spender != address(0) &&... */\n      tag_1192\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6644  owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender */\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup5\n      dup12\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6038:6053  _tokenApprovals */\n      0x06\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mstore\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      dup6\n      dup14\n      keccak256\n      sload\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6612:6644  _getApproved(tokenId) == spender */\n      eq\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6518:6645  spender != address(0) &&... */\n      jump(tag_1192)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6608  owner == spender || isApprovedForAll(owner, spender) */\n    tag_1198:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup6\n      dup12\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4043:4061  _operatorApprovals */\n      0x07\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      mstore\n      dup4\n      dup12\n      keccak256\n        /* \"contracts/TicketContract.sol\":18633:18643  msg.sender */\n      caller\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup13\n      mstore\n      dup2\n      mstore\n      0xff\n      dup5\n      dup13\n      keccak256\n      sload\n      and\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":6556:6608  owner == spender || isApprovedForAll(owner, spender) */\n      jump(tag_1199)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4237:4324  if (to == address(0)) {... */\n    tag_1182:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      mload\n      shl(0xe1, 0x32505749)\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4280:4313  ERC721InvalidReceiver(address(0)) */\n      dup2\n      mstore\n      dup1\n      dup8\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup12\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC721/ERC721.sol\":4280:4313  ERC721InvalidReceiver(address(0)) */\n      revert\n        /* \"contracts/TicketContract.sol\":18609:18722  if (hasRole(ADMIN_ROLE, msg.sender)==false){... */\n    tag_1180:\n        /* \"contracts/TicketContract.sol\":18673:18695  theTicketType.sellable */\n      0x0100\n      swap2\n      swap3\n      pop\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mload\n      iszero\n      tag_1202\n      jumpi\n        /* \"contracts/TicketContract.sol\":18609:18722  if (hasRole(ADMIN_ROLE, msg.sender)==false){... */\n      dup2\n      swap1\n      0x00\n      jump(tag_1181)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_1202:\n      dup3\n      mload\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      dup1\n      dup8\n      add\n      dup7\n      swap1\n      mstore\n      0x0c\n      0x24\n      dup3\n      add\n      mstore\n      shl(0xa0, 0x6e6f742073656c6c61626c65)\n      0x44\n      dup3\n      add\n      mstore\n      0x64\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":18508:18599  ITicketTypeContract(eventContract.getTicketTypeContract()).getTicketTypeInfo(_ticketTypeId) */\n    tag_1178:\n      tag_1204\n      swap2\n      pop\n      returndatasize\n      dup1\n      dup15\n      dup4\n      returndatacopy\n      tag_482\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1204:\n      0x00\n      jump(tag_1179)\n    tag_1176:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      mload\n      returndatasize\n      dup14\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"contracts/TicketContract.sol\":18528:18565  eventContract.getTicketTypeContract() */\n    tag_1174:\n      swap4\n      pop\n      swap1\n      pop\n      dup8\n      dup4\n      dup2\n      returndatasize\n      dup2\n      gt\n      tag_1206\n      jumpi\n    tag_1207:\n      tag_1208\n      dup2\n      dup4\n      tag_13\n      jump\t// in\n    tag_1208:\n      dup2\n      add\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      slt\n      tag_208\n      jumpi\n      0x24\n      tag_1211\n      dup7\n      swap5\n      tag_35\n      jump\t// in\n    tag_1211:\n        /* \"contracts/TicketContract.sol\":18528:18565  eventContract.getTicketTypeContract() */\n      swap2\n      swap1\n      jump(tag_1175)\n    tag_1206:\n      pop\n      returndatasize\n      jump(tag_1207)\n    tag_1172:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup7\n      mload\n      returndatasize\n      dup6\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3081:3528  function fromUInt (uint256 x) internal pure returns (bytes16) {... */\n    tag_52:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3171:3177  x == 0 */\n      dup1\n      tag_1212\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3179:3197  return bytes16 (0) */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3176:3177  0 */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3179:3197  return bytes16 (0) */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3167:3518  if (x == 0) return bytes16 (0);... */\n    tag_1212:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3220:3238  uint256 result = x */\n      dup1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3263:3290  mostSignificantBit (result) */\n      tag_1214\n      dup3\n      tag_57\n      jump\t// in\n    tag_1214:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3304:3313  msb < 112 */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3310:3313  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3304:3313  msb < 112 */\n      dup4\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3310:3313  112 */\n      iszero\n      tag_1215\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      dup2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3310:3313  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3300:3385  if (msb < 112) result <<= 112 - msb;... */\n    tag_1217:\n      sub(shl(0x70, 0x01), 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3405:3444  result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3447:3452  16383 */\n      0x3fff\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      swap2\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3310:3313  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      shl\n      sub(shl(0x80, 0x01), 0x01)\n      and\n      or\n      0x80\n      shl\n      not(sub(shl(0x80, 0x01), 0x01))\n      and\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3476:3509  return bytes16 (uint128 (result)) */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3300:3385  if (msb < 112) result <<= 112 - msb;... */\n    tag_1215:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3310:3313  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3354:3363  msb > 112 */\n      dup4\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3350:3385  if (msb > 112) result >>= msb - 112 */\n      tag_1218\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3300:3385  if (msb < 112) result <<= 112 - msb;... */\n    tag_1219:\n      pop\n      jump(tag_1217)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3350:3385  if (msb > 112) result >>= msb - 112 */\n    tag_1218:\n      not(0x6f)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      add\n      shr\n      swap1\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3350:3385  if (msb > 112) result >>= msb - 112 */\n      0x00\n      jump(tag_1219)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3925:4508  function toUInt (bytes16 x) internal pure returns (uint256) {... */\n    tag_53:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4049:4055  0x7FFF */\n      0x7fff\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      0x80\n      shr\n      swap2\n      0xf0\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4028:4055  uint128 (x) >> 112 & 0x7FFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4068:4084  exponent < 16383 */\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4079:4084  16383 */\n      0x3fff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4068:4084  exponent < 16383 */\n      dup3\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4064:4094  if (exponent < 16383) return 0 */\n      tag_1220\n      jumpi\n      shl(0x7f, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4125:4173  uint128 (x) < 0x80000000000000000000000000000000 */\n      dup2\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      iszero\n      tag_259\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4216:4221  16638 */\n      0x40fe\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4204:4221  exponent <= 16638 */\n      dup3\n      gt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_259\n      jumpi\n      sub(shl(0x70, 0x01), 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4259:4313  uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4259:4355  uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |... */\n      or\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4379:4384  16495 */\n      0x406f\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4368:4384  exponent < 16495 */\n      dup1\n      dup3\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4379:4384  16495 */\n      iszero\n      tag_1226\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3925:4508  function toUInt (bytes16 x) internal pure returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4364:4475  if (exponent < 16495) result >>= 16495 - exponent;... */\n    tag_1226:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4430:4446  exponent > 16495 */\n      dup2\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4426:4475  if (exponent > 16495) result <<= exponent - 16495 */\n      tag_1229\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4364:4475  if (exponent < 16495) result >>= 16495 - exponent;... */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3925:4508  function toUInt (bytes16 x) internal pure returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4426:4475  if (exponent > 16495) result <<= exponent - 16495 */\n    tag_1229:\n      not(0x406e)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      shl\n        /* \"contracts/TicketContract.sol\":7673:8234  function getTicketsPrice(uint256 _ticketTypeId) internal view returns(uint256){... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4064:4094  if (exponent < 16383) return 0 */\n    tag_1220:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4086:4094  return 0 */\n      pop\n      pop\n      0x00\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21496:23981  function mul (bytes16 x, bytes16 y) internal pure returns (bytes16) {... */\n    tag_54:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21629:21635  0x7FFF */\n      0x7fff\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup3\n      0xf0\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21608:21635  uint128 (x) >> 112 & 0x7FFF */\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup5\n      0xf0\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21663:21690  uint128 (y) >> 112 & 0x7FFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21703:21722  xExponent == 0x7FFF */\n      swap1\n      dup3\n      dup2\n      eq\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21699:23971  if (xExponent == 0x7FFF) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21629:21635  0x7FFF */\n      eq\n      tag_1231\n      jumpi\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21738:21757  yExponent == 0x7FFF */\n      sub\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21629:21635  0x7FFF */\n      tag_1233\n      jumpi\n      not(sub(shl(0x80, 0x01), 0x01))\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup2\n      and\n      dup4\n      dup3\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21775:21781  x == y */\n      sub\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1235\n      jumpi\n      pop\n      shl(0xff, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21794:21832  y & 0x80000000000000000000000000000000 */\n      swap1\n      swap2\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21790:21832  x ^ y & 0x80000000000000000000000000000000 */\n      xor\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21783:21832  return x ^ y & 0x80000000000000000000000000000000 */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21771:21937  if (x == y) return x ^ y & 0x80000000000000000000000000000000;... */\n    tag_1235:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21853:21858  x ^ y */\n      dup2\n      dup4\n      xor\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and\n      shl(0xff, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21853:21896  x ^ y == 0x80000000000000000000000000000000 */\n      sub\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1237\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21905:21910  x | y */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21898:21910  return x | y */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21849:21937  if (x ^ y == 0x80000000000000000000000000000000) return x | y;... */\n    tag_1237:\n      pop\n      shl(0xef, 0xffff)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21927:21937  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21734:22102  if (yExponent == 0x7FFF) {... */\n    tag_1233:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      sub(shl(0xff, 0x01), shl(0x80, 0x01))\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21970:22008  y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      dup2\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1239\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22015:22025  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21966:22091  if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;... */\n    tag_1239:\n      shl(0xff, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22053:22091  y & 0x80000000000000000000000000000000 */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22049:22091  x ^ y & 0x80000000000000000000000000000000 */\n      xor\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22042:22091  return x ^ y & 0x80000000000000000000000000000000 */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21699:23971  if (xExponent == 0x7FFF) {... */\n    tag_1231:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22120:22139  yExponent == 0x7FFF */\n      dup3\n      dup3\n      swap4\n      swap3\n      swap6\n      swap5\n      swap6\n      eq\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22116:23971  if (yExponent == 0x7FFF) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21629:21635  0x7FFF */\n      eq\n      tag_1241\n      jumpi\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      swap3\n      swap2\n      pop\n      pop\n      sub(shl(0xff, 0x01), shl(0x80, 0x01))\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22157:22195  x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      dup2\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1239\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22202:22212  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22116:23971  if (yExponent == 0x7FFF) {... */\n    tag_1241:\n      sub(shl(0x70, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup3\n      dup7\n      0x80\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22324:22368  uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22382:22396  xExponent == 0 */\n      swap2\n      dup1\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22378:22471  if (xExponent == 0) xExponent = 1;... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22382:22396  xExponent == 0 */\n      eq\n      tag_1245\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22398:22411  xExponent = 1 */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22410:22411  1 */\n      0x01\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22378:22471  if (xExponent == 0) xExponent = 1;... */\n      swap4\n    tag_1247:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup4\n      dup7\n      0x80\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22503:22547  uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22561:22575  yExponent == 0 */\n      swap1\n      dup1\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22557:22650  if (yExponent == 0) yExponent = 1;... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22561:22575  yExponent == 0 */\n      eq\n      tag_1248\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22577:22590  yExponent = 1 */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22589:22590  1 */\n      0x01\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22557:22650  if (yExponent == 0) yExponent = 1;... */\n      swap3\n    tag_1250:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      mul\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22661:22685  xSignifier *= ySignifier */\n      swap2\n      dup3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22699:22714  xSignifier == 0 */\n      swap5\n      dup4\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22695:22827  if (xSignifier == 0)... */\n      tag_1251\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      swap3\n      dup4\n      swap1\n      0x00\n      shl(0xe1, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22895:22968  xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 */\n      dup6\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1253\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22895:23110  xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :... */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22909:22968  0x200000000000000000000000000000000000000000000000000000000 */\n      0xe1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22895:23110  xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :... */\n      dup1\n      swap3\n    tag_1255:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23143:23148  16496 */\n      swap2\n      0x4070\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23125:23148  xExponent + msb < 16496 */\n      swap5\n      dup6\n      dup5\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23143:23148  16496 */\n      eq\n      tag_1256\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23175:23188  xExponent = 0 */\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      swap1\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23200:23214  xSignifier = 0 */\n      swap2\n      dup3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      swap2\n    tag_1258:\n      sub(shl(0x80, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      not\n      swap4\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21623:21626  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4139:4173  0x80000000000000000000000000000000 */\n      swap2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4139:4173  0x80000000000000000000000000000000 */\n      0x7f\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23872:23877  x ^ y */\n      swap2\n      xor\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      shr\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23862:23947  uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23862:23960  uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      or\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      shl\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23837:23962  return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n    tag_1256:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23253:23258  16608 */\n      0x40e0\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23235:23258  xExponent + msb < 16608 */\n      dup5\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23253:23258  16608 */\n      iszero\n      tag_1259\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23289:23306  xExponent < 16496 */\n      pop\n      pop\n      pop\n      pop\n      pop\n      dup1\n      dup3\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23285:23436  if (xExponent < 16496)... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23143:23148  16496 */\n      eq\n      tag_1261\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23285:23436  if (xExponent < 16496)... */\n      swap1\n    tag_1263:\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23231:23827  if (xExponent + msb < 16608) { // Subnormal... */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23285:23436  if (xExponent < 16496)... */\n    tag_1261:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23373:23390  xExponent > 16496 */\n      dup2\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23369:23436  if (xExponent > 16496)... */\n      tag_1265\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23285:23436  if (xExponent < 16496)... */\n    tag_1266:\n      pop\n      swap1\n      jump(tag_1263)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23369:23436  if (xExponent > 16496)... */\n    tag_1265:\n      not(0x406f)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23369:23436  if (xExponent > 16496)... */\n      0x00\n      jump(tag_1266)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23231:23827  if (xExponent + msb < 16608) { // Subnormal... */\n    tag_1259:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23482:23505  xExponent + msb > 49373 */\n      swap2\n      swap5\n      pop\n      swap2\n      swap5\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23500:23505  49373 */\n      0xc0dd\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23482:23505  xExponent + msb > 49373 */\n      dup6\n      swap9\n      swap8\n      swap9\n      swap7\n      swap4\n      swap7\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23478:23827  if (xExponent + msb > 49373) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23500:23505  49373 */\n      eq\n      tag_1267\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23519:23537  xExponent = 0x7FFF */\n      pop\n      pop\n      pop\n      pop\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23549:23563  xSignifier = 0 */\n      swap2\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23478:23827  if (xExponent + msb > 49373) {... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23478:23827  if (xExponent + msb > 49373) {... */\n    tag_1267:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23596:23605  msb > 112 */\n      swap1\n      swap2\n      swap3\n      swap4\n      swap6\n      swap7\n      swap5\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21623:21626  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23596:23605  msb > 112 */\n      dup3\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23592:23711  if (msb > 112)... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21623:21626  112 */\n      eq\n      tag_1270\n      jumpi\n      pop\n      not(0x6f)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23592:23711  if (msb > 112)... */\n    tag_1272:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23724:23768  xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      not(0x40de)\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23478:23827  if (xExponent + msb > 49373) {... */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23592:23711  if (msb > 112)... */\n    tag_1270:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23664:23673  msb < 112 */\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21623:21626  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23664:23673  msb < 112 */\n      dup2\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23660:23711  if (msb < 112)... */\n      tag_1273\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23592:23711  if (msb > 112)... */\n    tag_1274:\n      pop\n      pop\n      jump(tag_1272)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23660:23711  if (msb < 112)... */\n    tag_1273:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":21623:21626  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      shl\n      swap1\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23660:23711  if (msb < 112)... */\n      0x00\n      dup1\n      jump(tag_1274)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22895:23110  xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :... */\n    tag_1253:\n      pop\n      shl(0xe0, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22987:23060  xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 */\n      dup5\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1275\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23001:23060  0x100000000000000000000000000000000000000000000000000000000 */\n      0xe0\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22987:23110  xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 ? 224 :... */\n    tag_1277:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22895:23110  xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :... */\n      dup1\n      swap3\n      jump(tag_1255)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22987:23110  xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 ? 224 :... */\n    tag_1275:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23079:23110  mostSignificantBit (xSignifier) */\n      tag_1278\n      dup5\n      tag_57\n      jump\t// in\n    tag_1278:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22987:23110  xSignifier >= 0x100000000000000000000000000000000000000000000000000000000 ? 224 :... */\n      jump(tag_1277)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22695:22827  if (xSignifier == 0)... */\n    tag_1251:\n      pop\n      shl(0xff, 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap7\n      0x00\n      swap7\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22734:22739  x ^ y */\n      xor\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22733:22777  (x ^ y) & 0x80000000000000000000000000000000 */\n      dup8\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22733:22781  (x ^ y) & 0x80000000000000000000000000000000 > 0 */\n      iszero\n      swap5\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1279\n      swap4\n      pop\n      pop\n      pop\n      pop\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22733:22827  (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22726:22827  return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22733:22827  (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n    tag_1279:\n      swap1\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22726:22827  return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22557:22650  if (yExponent == 0) yExponent = 1;... */\n    tag_1248:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4324:4355  0x10000000000000000000000000000 */\n      swap3\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22605:22650  ySignifier |= 0x10000000000000000000000000000 */\n      swap1\n      swap2\n      or\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22557:22650  if (yExponent == 0) yExponent = 1;... */\n      jump(tag_1250)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22378:22471  if (xExponent == 0) xExponent = 1;... */\n    tag_1245:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4324:4355  0x10000000000000000000000000000 */\n      swap4\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22426:22471  xSignifier |= 0x10000000000000000000000000000 */\n      swap1\n      swap3\n      or\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":22378:22471  if (xExponent == 0) xExponent = 1;... */\n      jump(tag_1247)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25238:28032  function div (bytes16 x, bytes16 y) internal pure returns (bytes16) {... */\n    tag_55:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      0x7fff\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x4005\n      0xf0\n      dup4\n      swap1\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25350:25377  uint128 (x) >> 112 & 0x7FFF */\n      dup3\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25445:25464  xExponent == 0x7FFF */\n      dup1\n      dup4\n      sub\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      tag_1282\n      jumpi\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25480:25499  yExponent == 0x7FFF */\n      sub\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      tag_831\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25501:25511  return NaN */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25441:28022  if (xExponent == 0x7FFF) {... */\n    tag_1282:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26045:26075  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      swap1\n      sub(shl(0x70, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup2\n      dup6\n      0x80\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26210:26254  uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26268:26282  xExponent == 0 */\n      dup4\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26268:26282  xExponent == 0 */\n      eq\n      tag_1286\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26300:26315  xSignifier != 0 */\n      dup1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n      tag_1288\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n    tag_1289:\n      shl(0x6c, 0x19)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      div\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26668:26683  xSignifier == 0 */\n      dup4\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26664:26796  if (xSignifier == 0)... */\n      tag_1291\n      jumpi\n      shl(0x6c, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26815:26859  xSignifier >= 0x1000000000000000000000000000 */\n      dup5\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1293\n      jumpi\n      0x00\n      shl(0x73, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:26940  xSignifier >= 0x80000000000000000000000000000 */\n      dup6\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1295\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26943:26974  mostSignificantBit (xSignifier) */\n      pop\n      tag_1297\n      dup5\n      tag_57\n      jump\t// in\n    tag_1297:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n      swap3\n    tag_1298:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup5\n      add\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27153:27158  16497 */\n      0x4071\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27123:27158  xExponent + msb > yExponent + 16497 */\n      dup3\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27153:27158  16497 */\n      iszero\n      tag_1299\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27184:27202  xExponent = 0x7FFF */\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27214:27228  xSignifier = 0 */\n      swap1\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      swap1\n    tag_1301:\n      sub(shl(0x80, 0x01), 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      not\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4139:4173  0x80000000000000000000000000000000 */\n      swap1\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4139:4173  0x80000000000000000000000000000000 */\n      0x7f\n      shl\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      shl(0xec, 0x040059)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27923:27928  x ^ y */\n      xor\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      shr\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27913:27998  uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27913:28011  uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      or\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      shl\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27888:28013  return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n    tag_1299:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27267:27272  16380 */\n      swap1\n      swap2\n      swap3\n      swap4\n      swap5\n      swap6\n      pop\n      0x3ffc\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      dup5\n      dup7\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27249:27285  xExponent + msb + 16380  < yExponent */\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27249:27285  xExponent + msb + 16380  < yExponent */\n      eq\n      tag_1302\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27312:27325  xExponent = 0 */\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27337:27351  xSignifier = 0 */\n      swap1\n      dup2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      jump(tag_1301)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n    tag_1302:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27390:27395  16268 */\n      0x3f8c\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27372:27408  xExponent + msb + 16268  < yExponent */\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27372:27408  xExponent + msb + 16268  < yExponent */\n      eq\n      tag_1305\n      jumpi\n      pop\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup4\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27439:27468  xExponent + 16380 > yExponent */\n      dup3\n      dup2\n      gt\n      iszero\n      tag_1307\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      sub\n      add\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n    tag_1309:\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      jump(tag_1301)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n    tag_1307:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27547:27576  xExponent + 16380 < yExponent */\n      dup3\n      swap4\n      pop\n      swap2\n      swap1\n      swap2\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n      tag_1311\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n    tag_1312:\n      pop\n      pop\n      jump(tag_1309)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n    tag_1311:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      sub\n      not(0x3ffb)\n      add\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n      0x00\n      dup1\n      jump(tag_1312)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n    tag_1305:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      swap1\n      swap3\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27850:27855  16269 */\n      0x3f8d\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      swap5\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      dup2\n      swap7\n      swap3\n      swap7\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n      tag_1313\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n    tag_1314:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27763:27807  xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      pop\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      sub\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      jump(tag_1301)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n    tag_1313:\n      not(0x6f)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n      0x00\n      jump(tag_1314)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n    tag_1295:\n      shl(0x72, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27032  xSignifier >= 0x40000000000000000000000000000 */\n      dup6\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1315\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27001:27032  0x40000000000000000000000000000 */\n      0x72\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n    tag_1317:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n      swap3\n      jump(tag_1298)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n    tag_1315:\n      pop\n      shl(0x71, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27051:27096  xSignifier >= 0x20000000000000000000000000000 */\n      dup5\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1318\n      jumpi\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27065:27096  0x20000000000000000000000000000 */\n      0x71\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      jump(tag_1317)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27051:27108  xSignifier >= 0x20000000000000000000000000000 ? 113 : 112 */\n    tag_1318:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      jump(tag_1317)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n    tag_1293:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x01)\n      revert(0x00, 0x24)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26664:26796  if (xSignifier == 0)... */\n    tag_1291:\n      pop\n      shl(0xff, 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      0x00\n      swap5\n      pop\n      shl(0xec, 0x040059)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26703:26708  x ^ y */\n      xor\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26746  (x ^ y) & 0x80000000000000000000000000000000 */\n      dup6\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26750  (x ^ y) & 0x80000000000000000000000000000000 > 0 */\n      iszero\n      swap3\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1279\n      swap2\n      pop\n      pop\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26796  (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26695:26796  return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n    tag_1288:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26350:26381  mostSignificantBit (xSignifier) */\n      dup1\n      swap4\n      pop\n      tag_1324\n      swap2\n      pop\n      tag_57\n      jump\t// in\n    tag_1324:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26344:26347  226 */\n      0xe2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      swap2\n      dup3\n      shl\n      0x3f93\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26443:26444  1 */\n      0x01\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n      swap1\n      jump(tag_1289)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n    tag_1286:\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26545:26589  xSignifier | 0x10000000000000000000000000000 */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26594:26597  114 */\n      0x72\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n      jump(tag_1289)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25238:28032  function div (bytes16 x, bytes16 y) internal pure returns (bytes16) {... */\n    tag_56:\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      0x7fff\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup4\n      0xf0\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25350:25377  uint128 (x) >> 112 & 0x7FFF */\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup1\n      dup4\n      0xf0\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25405:25432  uint128 (y) >> 112 & 0x7FFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25445:25464  xExponent == 0x7FFF */\n      swap2\n      dup2\n      dup2\n      eq\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25441:28022  if (xExponent == 0x7FFF) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      eq\n      tag_1325\n      jumpi\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25480:25499  yExponent == 0x7FFF */\n      sub\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      tag_1239\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25501:25511  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25441:28022  if (xExponent == 0x7FFF) {... */\n    tag_1325:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25594:25613  yExponent == 0x7FFF */\n      dup3\n      dup3\n      sub\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25371:25377  0x7FFF */\n      tag_1329\n      jumpi\n      pop\n      pop\n      pop\n      shl(0x80, 0xffffffffffffffffffffffffffff)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25629:25667  y & 0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      dup2\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25629:25672  y & 0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF != 0 */\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":3414:3444  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      tag_1331\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25674:25684  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25625:25766  if (y & 0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF != 0) return NaN;... */\n    tag_1331:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25723:25728  x ^ y */\n      xor\n      shl(0xff, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25722:25766  (x ^ y) & 0x80000000000000000000000000000000 */\n      and\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25699:25766  return POSITIVE_ZERO | (x ^ y) & 0x80000000000000000000000000000000 */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25590:28022  if (yExponent == 0x7FFF) {... */\n    tag_1329:\n      sub(shl(0xff, 0x01), shl(0x80, 0x01))\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25785:25823  y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      dup5\n      dup5\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1333\n      jumpi\n      pop\n      pop\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25844:25882  x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      dup3\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1335\n      jumpi\n      pop\n      shl(0xef, 0xffff)\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25889:25899  return NaN */\n      swap1\n      pop\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25840:25985  if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;... */\n    tag_1335:\n      shl(0xf0, 0x7fff)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25942:25947  x ^ y */\n      swap2\n      xor\n      shl(0xff, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25941:25985  (x ^ y) & 0x80000000000000000000000000000000 */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25921:25985  POSITIVE_INFINITY | (x ^ y) & 0x80000000000000000000000000000000 */\n      or\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25914:25985  return POSITIVE_INFINITY | (x ^ y) & 0x80000000000000000000000000000000 */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25781:28022  if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) {... */\n    tag_1333:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26045:26075  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      swap1\n      swap2\n      swap3\n      pop\n      sub(shl(0x70, 0x01), 0x01)\n      swap5\n      swap4\n      swap5\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      dup2\n      dup7\n      0x80\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26031:26075  uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26089:26103  yExponent == 0 */\n      swap1\n      dup1\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26085:26178  if (yExponent == 0) yExponent = 1;... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26089:26103  yExponent == 0 */\n      eq\n      tag_1337\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26105:26118  yExponent = 1 */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26117:26118  1 */\n      0x01\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26085:26178  if (yExponent == 0) yExponent = 1;... */\n      swap1\n    tag_1339:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup3\n      dup7\n      0x80\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26210:26254  uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26268:26282  xExponent == 0 */\n      dup5\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26268:26282  xExponent == 0 */\n      eq\n      tag_1340\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26300:26315  xSignifier != 0 */\n      dup1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n      tag_1342\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n    tag_1343:\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26631:26654  xSignifier / ySignifier */\n      tag_1344\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26631:26654  xSignifier / ySignifier */\n      tag_28\n      jump\t// in\n    tag_1344:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26668:26683  xSignifier == 0 */\n      swap3\n      dup4\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26664:26796  if (xSignifier == 0)... */\n      tag_1346\n      jumpi\n      shl(0x6c, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26815:26859  xSignifier >= 0x1000000000000000000000000000 */\n      dup5\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1293\n      jumpi\n      0x00\n      shl(0x73, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:26940  xSignifier >= 0x80000000000000000000000000000 */\n      dup6\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1350\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26943:26974  mostSignificantBit (xSignifier) */\n      pop\n      tag_1352\n      dup5\n      tag_57\n      jump\t// in\n    tag_1352:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n      swap3\n    tag_1353:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup2\n      dup5\n      add\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27153:27158  16497 */\n      0x4071\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27123:27158  xExponent + msb > yExponent + 16497 */\n      dup3\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27153:27158  16497 */\n      iszero\n      tag_1354\n      jumpi\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27923:27928  x ^ y */\n      swap2\n      xor\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      swap1\n      dup2\n      shr\n      shl(0x7f, 0x01)\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      swap1\n      swap3\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27913:27998  uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      swap2\n      swap1\n      swap2\n      or\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      shl\n      not(sub(shl(0x80, 0x01), 0x01))\n      and\n      swap1\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27888:28013  return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |... */\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n    tag_1354:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27267:27272  16380 */\n      swap1\n      swap2\n      swap3\n      swap4\n      swap5\n      swap6\n      pop\n      0x3ffc\n      swap8\n      swap7\n      swap8\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap5\n      dup5\n      dup7\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27249:27285  xExponent + msb + 16380  < yExponent */\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27249:27285  xExponent + msb + 16380  < yExponent */\n      eq\n      tag_1357\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27312:27325  xExponent = 0 */\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      swap1\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27337:27351  xSignifier = 0 */\n      swap2\n      dup3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27245:27878  if (xExponent + msb + 16380  < yExponent) { // Underflow... */\n    tag_1357:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27390:27395  16268 */\n      0x3f8c\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup5\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27372:27408  xExponent + msb + 16268  < yExponent */\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27372:27408  xExponent + msb + 16268  < yExponent */\n      eq\n      tag_1360\n      jumpi\n      pop\n      pop\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      dup1\n      dup4\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27439:27468  xExponent + 16380 > yExponent */\n      dup3\n      dup2\n      gt\n      iszero\n      tag_1362\n      jumpi\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      pop\n      sub\n      add\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n      swap1\n      0x00\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27119:27878  if (xExponent + msb > yExponent + 16497) { // Overflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n    tag_1362:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27547:27576  xExponent + 16380 < yExponent */\n      dup3\n      swap4\n      pop\n      swap2\n      swap1\n      swap2\n      lt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n      tag_1366\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27435:27634  if (xExponent + 16380 > yExponent)... */\n    tag_1367:\n      pop\n      pop\n      swap1\n      jump(tag_1263)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n    tag_1366:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap1\n      sub\n      not(0x3ffb)\n      add\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27543:27634  if (xExponent + 16380 < yExponent)... */\n      0x00\n      dup1\n      jump(tag_1367)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n    tag_1360:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      swap1\n      swap3\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27850:27855  16269 */\n      0x3f8d\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      swap5\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27703:27712  msb > 112 */\n      dup2\n      swap8\n      swap7\n      swap3\n      swap8\n      gt\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n      tag_1368\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n    tag_1369:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27763:27807  xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF */\n      pop\n      and\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap4\n      sub\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27368:27878  if (xExponent + msb + 16268  < yExponent) { // Subnormal... */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":23121:23827  if (xExponent + msb < 16496) { // Underflow... */\n      jump(tag_1258)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n    tag_1368:\n      not(0x6f)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      add\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27699:27750  if (msb > 112)... */\n      0x00\n      jump(tag_1369)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n    tag_1350:\n      shl(0x72, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27032  xSignifier >= 0x40000000000000000000000000000 */\n      dup6\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1370\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27001:27032  0x40000000000000000000000000000 */\n      0x72\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n    tag_1372:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26895:27108  xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :... */\n      swap3\n      jump(tag_1353)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n    tag_1370:\n      pop\n      shl(0x71, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27051:27096  xSignifier >= 0x20000000000000000000000000000 */\n      dup5\n      lt\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1373\n      jumpi\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27065:27096  0x20000000000000000000000000000 */\n      0x71\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      jump(tag_1372)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":27051:27108  xSignifier >= 0x20000000000000000000000000000 ? 113 : 112 */\n    tag_1373:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0xff\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":25365:25368  112 */\n      0x70\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26987:27108  xSignifier >= 0x40000000000000000000000000000 ? 114 :... */\n      jump(tag_1372)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26664:26796  if (xSignifier == 0)... */\n    tag_1346:\n      pop\n      shl(0xff, 0x01)\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap6\n      0x00\n      swap6\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26703:26708  x ^ y */\n      xor\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26746  (x ^ y) & 0x80000000000000000000000000000000 */\n      dup7\n      and\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26750  (x ^ y) & 0x80000000000000000000000000000000 > 0 */\n      iszero\n      swap4\n      pop\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_1279\n      swap3\n      pop\n      pop\n      pop\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26702:26796  (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26695:26796  return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n    tag_1342:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26350:26381  mostSignificantBit (xSignifier) */\n      swap4\n      pop\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26631:26654  xSignifier / ySignifier */\n      tag_1344\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26350:26381  mostSignificantBit (xSignifier) */\n      swap1\n      tag_1379\n      dup6\n      tag_57\n      jump\t// in\n    tag_1379:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26344:26347  226 */\n      0xe2\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      sub\n      swap5\n      dup6\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26431:26444  xExponent = 1 */\n      swap3\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26443:26444  1 */\n      0x01\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap6\n      not(0x71)\n      swap2\n      add\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26296:26495  if (xSignifier != 0) {... */\n      swap3\n      swap1\n      swap2\n      pop\n      jump(tag_1343)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26264:26608  if (xExponent == 0) {... */\n    tag_1340:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26631:26654  xSignifier / ySignifier */\n      tag_1344\n      swap2\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4324:4355  0x10000000000000000000000000000 */\n      swap1\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26545:26589  xSignifier | 0x10000000000000000000000000000 */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26594:26597  114 */\n      0x72\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      shl\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26631:26654  xSignifier / ySignifier */\n      tag_28\n      jump\t// in\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26085:26178  if (yExponent == 0) yExponent = 1;... */\n    tag_1337:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":4324:4355  0x10000000000000000000000000000 */\n      swap1\n      shl(0x70, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26133:26178  ySignifier |= 0x10000000000000000000000000000 */\n      or\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":26085:26178  if (yExponent == 0) yExponent = 1;... */\n      jump(tag_1339)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_57:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52220:52225  x > 0 */\n      dup1\n      iszero\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      tag_259\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52224:52225  0 */\n      0x00\n      swap1\n      shl(0x80, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52266:52306  x >= 0x100000000000000000000000000000000 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52262:52337  if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; } */\n      tag_1382\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1383:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52348:52372  x >= 0x10000000000000000 */\n      dup1\n      shl(0x40, 0x01)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52666:52669  0x2 */\n      0x02\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52348:52372  x >= 0x10000000000000000 */\n      swap3\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52344:52401  if (x >= 0x10000000000000000) { x >>= 64; result += 64; } */\n      tag_1384\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1385:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52417:52428  0x100000000 */\n      0x0100000000\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52412:52428  x >= 0x100000000 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52408:52457  if (x >= 0x100000000) { x >>= 32; result += 32; } */\n      tag_1386\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1387:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52473:52480  0x10000 */\n      0x010000\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52468:52480  x >= 0x10000 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52464:52509  if (x >= 0x10000) { x >>= 16; result += 16; } */\n      tag_1388\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1389:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52525:52530  0x100 */\n      0x0100\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52520:52530  x >= 0x100 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52516:52557  if (x >= 0x100) { x >>= 8; result += 8; } */\n      tag_1390\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1391:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52573:52577  0x10 */\n      0x10\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52568:52577  x >= 0x10 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52564:52604  if (x >= 0x10) { x >>= 4; result += 4; } */\n      tag_1392\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1393:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52620:52623  0x4 */\n      0x04\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52615:52623  x >= 0x4 */\n      dup2\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52611:52650  if (x >= 0x4) { x >>= 2; result += 2; } */\n      tag_1394\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n    tag_1395:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52661:52669  x >= 0x2 */\n      lt\n      iszero\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52657:52682  if (x >= 0x2) result += 1 */\n      tag_1396\n      jumpi\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52657:52682  if (x >= 0x2) result += 1 */\n    tag_1396:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x01\n      add\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52116:52745  function mostSignificantBit (uint256 x) private pure returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52611:52650  if (x >= 0x4) { x >>= 2; result += 2; } */\n    tag_1394:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap2\n      dup2\n      add\n      swap2\n      dup2\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52611:52650  if (x >= 0x4) { x >>= 2; result += 2; } */\n      jump(tag_1395)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52564:52604  if (x >= 0x10) { x >>= 4; result += 4; } */\n    tag_1392:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52587:52588  4 */\n      0x04\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      add\n      swap3\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52564:52604  if (x >= 0x10) { x >>= 4; result += 4; } */\n      jump(tag_1393)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52516:52557  if (x >= 0x100) { x >>= 8; result += 8; } */\n    tag_1390:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52540:52541  8 */\n      0x08\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      add\n      swap3\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52516:52557  if (x >= 0x100) { x >>= 8; result += 8; } */\n      jump(tag_1391)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52464:52509  if (x >= 0x10000) { x >>= 16; result += 16; } */\n    tag_1388:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52490:52492  16 */\n      0x10\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      add\n      swap3\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52464:52509  if (x >= 0x10000) { x >>= 16; result += 16; } */\n      jump(tag_1389)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52408:52457  if (x >= 0x100000000) { x >>= 32; result += 32; } */\n    tag_1386:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52438:52440  32 */\n      0x20\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      add\n      swap3\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52408:52457  if (x >= 0x100000000) { x >>= 32; result += 32; } */\n      jump(tag_1387)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52344:52401  if (x >= 0x10000000000000000) { x >>= 64; result += 64; } */\n    tag_1384:\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52382:52384  64 */\n      0x40\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      swap3\n      dup4\n      add\n      swap3\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52344:52401  if (x >= 0x10000000000000000) { x >>= 64; result += 64; } */\n      jump(tag_1385)\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52262:52337  if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; } */\n    tag_1382:\n        /* \"contracts/TicketContract.sol\":880:21379  contract TicketContract  is ERC2981,ERC721,Ownable,AccessControl {... */\n      0x80\n      swap2\n      pop\n      dup2\n      shr\n        /* \"abdk-libraries-solidity/ABDKMathQuad.sol\":52262:52337  if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; } */\n      jump(tag_1383)\n    stop\n    data_cb864c43dd5d441bb6271f424f11befa622c032dfd374d226e26fbbdb782b8f8 a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775\n\n    auxdata: 0xa26469706673582212201aefb3dd32fc94315259a4c167992642fa8fffb25002665d7c1090ca8fc0f02164736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"abi_decode_address_fromMemory": {
									"entryPoint": 2578,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"copy_memory_to_memory_with_cleanup": {
									"entryPoint": 2599,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 0
								},
								"finalize_allocation": {
									"entryPoint": 2542,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"finalize_allocation_8106": {
									"entryPoint": 2514,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"fun_grantRole": {
									"entryPoint": 2816,
									"id": 302,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_grantRole_8102": {
									"entryPoint": 2655,
									"id": 302,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"memory_array_index_access_address_dyn": {
									"entryPoint": 2634,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								}
							},
							"generatedSources": [],
							"linkReferences": {},
							"object": "608060405234620009b357620051e6803803809162000020826080620009ee565b6080396101608112620009b35762000039608062000a12565b60a0516001600160401b038111620009b3576080019180608001601f84011215620009b3578251916001600160401b0383116200076c578260051b9360405193620000886020870186620009ee565b8452602084016020819683010191846080018311620009b357602001905b828210620009b757505050620000c0604060800162000a12565b93620000cd60e062000a12565b94620000db61010062000a12565b95620000e961012062000a12565b620000f661014062000a12565b610160519092906001600160401b038111620009b35760808801609f82011215620009b35760808101516001600160401b0381116200076c576040519862000149601f8301601f19166020018b620009ee565b818a5260800160a08383010111620009b3576200016e9160208a019060a00162000a27565b6200017b61018062000a12565b93620001896101a062000a12565b6101c051989097906001600160601b038a168a03620009b357604051620001e6602b828451620001c181602084016020890162000a27565b81016a040c4f240a6cad8d8a8d2f60ab1b602082015203600b810184520182620009ee565b6200022f602f604051846200020682965180926020808601910162000a27565b81016e2053656c6c5469785469636b65747360881b602082015203600f810185520183620009ee565b8051906001600160401b0382116200076c5760025490600182811c92168015620009a8575b6020831014620008a15781601f84931162000947575b50602090601f8311600114620008cc575f92620008c0575b50508160011b915f199060031b1c1916176002555b8051906001600160401b0382116200076c5760035490600182811c92168015620008b5575b6020831014620008a15781601f84931162000831575b50602090601f8311600114620007a4575f9262000798575b50508160011b915f199060031b1c1916176003555b6001600160a01b038116156200078057600880546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3600b80546001600160601b03191660c81790555f5b8951811015620003dc57620003946001600160a01b036200038c838d62000a4a565b511662000a5f565b50620003b56001600160a01b03620003ad838d62000a4a565b511662000b00565b505f198114620003c8576001016200036a565b634e487b7160e01b5f52601160045260245ffd5b50600c80546001600160a01b03199081166001600160a01b03808e1691909117909255600b80546001600160601b031660609490941b6001600160601b03191693909317909255600d8054831693821693909317909255600e8054821693909216929092179055600f805490911673d0d5e3db44de05e9f294bb0a3beeaf030de24ada1790556040519495946200047381620009d2565b732f7b97837f2d14ba2ed3a4b2282e259126a9b848815260016020820152601254680100000000000000008110156200076c576001810180601255811015620007585760125f5260205f20019060018060a01b03815116825491602060ff60a01b910151151560a01b169160018060a81b03191617179055604051620004f981620009d2565b739999f7fea5938fd3b1e26a12c3f2fb024e194f97815260016020820152601254680100000000000000008110156200076c576001810180601255811015620007585760125f90815282517fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444929092018054602094909401516001600160a81b03199094166001600160a01b039384161793151560a01b60ff60a01b1693909317909255601080546001600160a01b031990811694831694851790915560138054909116919094161790925560408051633299e86560e01b81526004810191909152945160448601819052859360648501939091905b81811062000735575050506024830152602092908290039082905f906001600160a01b03165af19081156200072a575f91620006e5575b50601180546001600160a01b0319166001600160a01b03928316179055600c5416906127106001600160601b0382168110620006bd57508115620006a5576040516200067281620009d2565b8281526001600160601b03821660209091015260a01b6001600160a01b031916175f55604051614626908162000b808239f35b604051635b6cc80560e11b81525f6004820152602490fd5b604051636f483d0960e01b81526001600160601b039092166004830152602482015260449150fd5b906020823d60201162000721575b816200070260209383620009ee565b810103126200071e5750620007179062000a12565b8262000626565b80fd5b3d9150620006f3565b6040513d5f823e3d90fd5b82516001600160a01b0316855287955060209485019490920191600101620005ef565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b604051631e4fbdf760e01b81525f6004820152602490fd5b015190505f80620002ea565b60035f90815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f198416851062000815576001945083601f19811610620007fc575b505050811b01600355620002ff565b01515f1960f88460031b161c191690555f8080620007ed565b81810151835560209485019460019093019290910190620007d0565b60035f529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000899575b90849392915b601f830160051c820181106200088a575050620002d2565b5f815585945060010162000872565b50806200086c565b634e487b7160e01b5f52602260045260245ffd5b91607f1691620002bc565b015190505f8062000282565b60025f90815293505f80516020620051c683398151915291905b601f19841685106200092b576001945083601f1981161062000912575b505050811b0160025562000297565b01515f1960f88460031b161c191690555f808062000903565b81810151835560209485019460019093019290910190620008e6565b60025f529091505f80516020620051c6833981519152601f840160051c810191602085106200099d575b90601f859493920160051c01905b8181106200098e57506200026a565b5f81558493506001016200097f565b909150819062000971565b91607f169162000254565b5f80fd5b60208091620009c68462000a12565b815201910190620000a6565b604081019081106001600160401b038211176200076c57604052565b601f909101601f19168101906001600160401b038211908210176200076c57604052565b51906001600160a01b0382168203620009b357565b5f5b83811062000a395750505f910152565b818101518382015260200162000a29565b8051821015620007585760209160051b010190565b6001600160a01b03165f8181527f5e421a728e346ccaf4d82870ec53d59217a30d3483c6688054a2a67760f2138c60205260408120549091907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759060ff1662000afb5780835260096020526040832082845260205260408320600160ff198254161790555f80516020620051a6833981519152339380a4600190565b505090565b6001600160a01b03165f8181527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b602052604081205490919060ff1662000b7b5781805260096020526040822081835260205260408220600160ff1982541617905533915f80516020620051a68339815191528180a4600190565b509056fe6080806040526004361015610012575f80fd5b5f9060e08235811c91826301ffc9a71461216f5750816306fdde031461209e578163081812fc14612061578163095ea7b314611f7e57816312065fe014611f6257816323b872dd14611f4a578163248a9ca314611f1d57816324cda74514611ef357816326c91cad14611ea65781632a55205a14611df75781632f2ff15d14611db957816336568abe14611d715781633ccfd60b14611cad57816342842e0e14611c7f57816345a986c914611c545781634fdf478014611c3657816350b4471214611bae5781635f0d5b8514611b0b5781636352211e14611ada5781636bb03a87146119355781636e754d3d1461185d5781636f269b7a1461157157816370a0823114611519578163715018a6146114bc578163715e76aa146114935781637247b78914610bf957816375b238fc14610bd1578163796c848114610ba8578163871a1f2d14610b8d5781638ab234b614610ad55781638da5cb5b14610aac57816391d1485414610a6257816395d89b41146109965781639af1179e1461073a57508063a217fddf1461071e578063a22cb4651461066e578063aa9a09121461061f578063ab757d61146105fc578063b4c24af7146105db578063b88d4fde14610569578063c645848614610540578063c87b56dd14610508578063cac9266914610459578063d547741f14610417578063d56d2e60146103d4578063d7ff31e7146103aa578063dc40da5c14610381578063e274fd2414610358578063e985e9c514610306578063f074ec5a146102dd5763f2fde38b14610251575f80fd5b346102da5760203660031901126102da5761026a612270565b61027261262f565b6001600160a01b039081169081156102c157600854826001600160601b0360a01b821617600855167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b80fd5b50346102da57806003193601126102da57600c546040516001600160a01b039091168152602090f35b50346102da5760403660031901126102da57610320612270565b604061032a612286565b9260018060a01b03809316815260076020522091165f52602052602060ff60405f2054166040519015158152f35b50346102da57806003193601126102da576010546040516001600160a01b039091168152602090f35b50346102da57806003193601126102da57600d546040516001600160a01b039091168152602090f35b50346102da5760203660031901126102da5760406020916004358152601683522054604051908152f35b50346102da5760403660031901126102da576020906040906001600160a01b036103fc612270565b16815260178352818120602435825283522054604051908152f35b50346102da5760403660031901126102da57610455600435610437612286565b90808452600960205261045060016040862001546124fc565b6125ba565b5080f35b50346102da5760203660031901126102da576004356001600160601b038116809103610504575f805160206145d18339815191528252600960205260408220335f5260205260ff60405f205416156104bf576001600160601b0319600b541617600b5580f35b60405162461bcd60e51b815260206004820152601960248201527f4f6e6c7920666f756e646572732063616e20646f2074686174000000000000006044820152606490fd5b5080fd5b50346102da5760203660031901126102da5761053c610528600435613564565b60405191829160208352602083019061224b565b0390f35b50346102da57806003193601126102da576011546040516001600160a01b039091168152602090f35b50346102da5760803660031901126102da57610583612270565b61058b612286565b90604435606435926001600160401b0384116105d757366023850112156105d7576105c36105d49436906024816004013591016124a8565b926105cf838383613a98565b6126c4565b80f35b8480fd5b50346102da57806003193601126102da576020600b5460601c604051908152f35b50346102da57806003193601126102da576020610617612869565b604051908152f35b50346102da5760603660031901126102da576020610617610669610658610647600435613d88565b610652602435613d88565b90613e5a565b610663604435613d88565b90614292565b613df6565b50346102da5760403660031901126102da57610688612270565b602435908115159081830361071a576001600160a01b0316918215610701576106d290338552600760205260408520845f5260205260405f209060ff801983541691151516179055565b6040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b604051630b61174360e31b815260048101849052602490fd5b5f80fd5b50346102da57806003193601126102da57602090604051908152f35b82346102da576020806003193601126105045782610756612270565b600a546001600160a01b039492839290919083908716815b838110610957575061077f86613a6d565b9561078d60405197886123cb565b80875261079c601f1991613a6d565b01855b81811061090b575050845b83811061083f5750505050604051938085019181865284518093528160408701950193905b8382106107dc5786860387f35b84518051875280840151878501526040808201518a1690880152606080820151908801526080808201519088015260a0808201519088015260c08082015115159088015281015115158682015261010090950194938201936001909101906107cf565b80869895965260148552604088208960028201541690838214610871575b505061086890612d68565b969493966107aa565b60066040959395519161088383612379565b80548352600193848201548a85015260408401526003810154606084015260048101546080840152600581015460a0840152015460ff90818116151560c084015260081c161515888201526108d8838a613a84565b526108e38289613a84565b5081018091116108f757916108688a61085d565b634e487b7160e01b88526011600452602488fd5b978095969860405161091c81612379565b8a81528a838201528a60408201528a60608201528a60808201528a60a08201528a60c08201528a8982015282828b010152019795949761079f565b808698959652601485528189600260408b2001541614610984575b61097b90612d68565b9694939661076e565b95600181018091116108f75795610972565b82346102da57806003193601126102da576040515f6003546109b78161231a565b80845290600190818116908115610a3b57506001146109e1575b61053c84610528818603826123cb565b60035f90815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610a23575050508101602001610528826109d1565b80546020858701810191909152909301928101610a0b565b60ff191660208087019190915292151560051b8501909201925061052891508390506109d1565b82346102da5760403660031901126102da576040610a7e612286565b9160043581526009602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b82346102da57806003193601126102da576008546040516001600160a01b039091168152602090f35b82346102da5760203660031901126102da576004356001600160a01b0381811691829003610b895760405191610b0a83612395565b8252602082019060018252601254600160401b811015610b7557806001610b3492016012556122d1565b939093610b615751835492516001600160a81b031990931691161790151560a01b60ff60a01b1617905580f35b634e487b7160e01b85526004859052602485fd5b634e487b7160e01b85526041600452602485fd5b8280fd5b82346102da57806003193601126102da5760206106176128db565b82346102da57806003193601126102da57600c546040516001600160a01b039091168152602090f35b82346102da57806003193601126102da5760206040515f805160206145d18339815191528152f35b8260a03660031901126102da576004356001600160401b03811161050457610c259036906004016124de565b9060643515156064350361071a576084359160018060a01b036011541633835260176020526040832060243584526020526040832054813b1561148f57610c8d8492839260405194858094819363758ddfdd60e01b8352604435602435338c6004870161295e565b03925af18015610ebc5790839161147b575b505081926064356113b2575b50610cb760243561347a565b92610cc4604435856127db565b50610ccd612869565b610cd56128db565b916402540be40092808481020484148115171561139e57828481020484148315171561139e57610d1c604435670de0b6b3a7640000610d168787028b6127db565b046127db565b6064351561131d576040516370a0823160e01b8152336004820152906020826024816001600160a01b0388165afa91821561114a5788926112e0575b5064e8d4a5100090041161129b575b60105460405163c166549960e01b815290602090829060049082906001600160a01b03165afa8015611136578790819061125b575b6040516322b76fcf60e21b8152602480356004830152909350839182906001600160a01b03165afa90811561113657906101e0918891611239575b500151865b6044358110610ec7576010548890819089906001600160a01b0316803b15610ea1578280916044604051809481936347f6682b60e01b83526024356004840152833560248401525af1908115610ebc578391610ea5575b50506011546001600160a01b0316803b15610ea15760405163041b281960e51b8152602060048201529183918391829084908290610e7590602483019061224b565b03925af18015610e9657610e865750f35b610e8f90612352565b6102da5780f35b6040513d84823e3d90fd5b5050fd5b610eae90612352565b610eb9578184610e33565b50fd5b6040513d85823e3d90fd5b87670de0b6b3a7640000610edd8888028c6127db565b046064351561117d57670de0b6b3a764000081101561115f575b600b918254610f2a610669610f25610f1c6001600160601b0360648187160416613d88565b61065287613d88565b6140a9565b908c606435156110c75750508c610f5c575b50505050610f57905b610f528a60243533612e6b565b612d68565b610ddc565b91602091610f80610fb894610f7864e8d4a51000938492612d76565b048093612d83565b94546040516323b872dd60e01b815233600482015260609190911c602482015260448101929092529093049291829081906064820190565b03818d6001600160a01b038b165af180156110bc57611078575b50600d546040516323b872dd60e01b81523360048201526001600160a01b039091166024820152604481019190915260208180606481015b03818c6001600160a01b038a165af1801561106d5761102c575b808080610f3c565b6020813d602011611065575b81611045602093836123cb565b81010312611061579061105a610f57926129bb565b5090611024565b8880fd5b3d9150611038565b6040513d8b823e3d90fd5b6020813d6020116110b4575b81611091602093836123cb565b810103126110b05761100a916110a86020926129bb565b509150610fd2565b8980fd5b3d9150611084565b6040513d8c823e3d90fd5b93926110d89195506110df92612d76565b8092612d83565b928c6110f3575b50505050610f5790610f45565b828092819282908215611155575b60601c90f11561114a57600d5489918291829182916001600160a01b0316828215611141575bf11561113657898881806110e6565b6040513d89823e3d90fd5b506108fc611127565b6040513d8a823e3d90fd5b6108fc9150611101565b9050670de0b6b3a7640000611176888802856127db565b0490610ef7565b61118a9088860290612802565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561122557670de0b6b3a76400008110610ef7579050670de0b6b3a76400006111d1888802856127db565b04606481029080820460641490151715611225576111f29088860290612802565b662386f26fc10000908082810204821481151715611211570290610ef7565b634e487b7160e01b8b52601160045260248bfd5b634e487b7160e01b8a52601160045260248afd5b61125591503d808a833e61124d81836123cb565b810190612a0a565b89610dd7565b50506020813d602011611293575b81611276602093836123cb565b8101031261128f578661128a602492612996565b610d9c565b8680fd5b3d9150611269565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f7567687420455243323020746f2070617900000000000000006044820152606490fd5b9091506020813d602011611315575b816112fc602093836123cb565b8101031261131157519064e8d4a51000610d58565b8780fd5b3d91506112ef565b61132a9085830290612802565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561138a57341015610d675760405162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f756768206d6f6e657960801b6044820152606490fd5b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b909250601254811015611442576113c8906122d1565b5060ff604051916113d883612395565b546001600160a01b038116835260a01c16158015602083015261140657516001600160a01b03169183610cab565b60405162461bcd60e51b815260206004820152601460248201527310dc9e5c1d1bc81b9bdd081cdd5c1c1bdc9d195960621b6044820152606490fd5b60405162461bcd60e51b815260206004820152601160248201527010dc9e5c1d1bc81a59081a5b9d985b1a59607a1b6044820152606490fd5b61148490612352565b610504578184610c9f565b8380fd5b82346102da57806003193601126102da576010546040516001600160a01b039091168152602090f35b82346102da57806003193601126102da576114d561262f565b600880546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b82346102da5760203660031901126102da576001600160a01b0361153b612270565b168015611558578160409160209352600583522054604051908152f35b6040516322718ad960e21b815260048101839052602490fd5b82346102da5760403660031901126102da576001600160401b0391600435838111610b89576115a49036906004016124de565b906115ad612286565b60085490946001600160a01b039182163314801561182b575b6115cf90612912565b81601154169260405191633e30dcf960e21b8352868360209687600483015281806115fd602482018c61224b565b03915afa928315611136578793611772575b50508101511561172d57606081015142116116f25760a060808201519101516116378161347a565b865b8381106116de575050859650826010541691823b1561128f57604487928360405195869485936347f6682b60e01b8552600485015260248401525af19081156116d35785916116bf575b50506011541691823b156116ba57610e759284928360405180968195829463041b281960e51b84526004840152602483019061224b565b505050fd5b6116c890612352565b6116ba578386611683565b6040513d87823e3d90fd5b6116ed90610f5283858c612e6b565b611639565b60405162461bcd60e51b815260048101849052601360248201527214995cd95c9d985d1a5bdb88195e1c1a5c9959606a1b6044820152606490fd5b60405162461bcd60e51b815260048101849052601a60248201527f496e76616c6964207265736572766174696f6e206e756d6265720000000000006044820152606490fd5b909192503d8088833e61178581836123cb565b8101908581830312611311578051908382116110615701906101008282031261131157604051926117b584612379565b825190811161106157916117cf859261181f9483016129c8565b84526117dc878201612996565b8785015260408101516040850152606081015160608501526080810151608085015260a081015160a085015261181460c082016129bb565b60c0850152016129bb565b8282015290878061160f565b505f805160206145d18339815191528552600960205260408520335f526020526115cf60ff60405f20541690506115c6565b82346102da5760603660031901126102da57611877612270565b9060243560443560018060a01b03806008541633148015611903575b61189c90612912565b6118a58261347a565b845b8481106118ef5750508394506010541691823b156116ba57604484928360405195869485936347f6682b60e01b8552600485015260248401525af18015610e9657610e865750f35b6118fe90610f5283868a612e6b565b6118a7565b505f805160206145d18339815191528452600960205260408420335f5260205261189c60ff60405f2054169050611893565b82346102da5760403660031901126102da5760249081356001600160401b03808211610b895736602383011215610b89578160040135908111610b895736848284010111610b89576008546001600160a01b031633148015611aa8575b61199b90612912565b60043583526020936015855260408420926119b6845461231a565b601f8111611a65575b508495601f84116001146119fe5750948495839495936119f1575b5050508160011b915f199060031b1c191617905580f35b01013590508480806119da565b91601f198416968587528387209387905b898210611a4b57505084600196979810611a30575b50505050811b01905580f35b5f1960f88660031b161c199201013516905584808080611a24565b806001849786839596890101358155019601920190611a0f565b848652868620601f850160051c810191888610611a9e575b601f0160051c01905b818110611a9357506119bf565b868155600101611a86565b9091508190611a7d565b505f805160206145d18339815191528352600960205260408320335f5260205261199b60ff60405f2054169050611992565b82346102da5760203660031901126102da576020611af960043561265b565b6040516001600160a01b039091168152f35b82346102da5760603660031901126102da576004356001600160401b03811161050457611b3c9036906004016124de565b816024359160018060a01b0360115416338352601760205260408320848452602052604083205491813b1561148f5783611b93956040519687958694859363758ddfdd60e01b85526044359133906004870161295e565b03925af18015610e9657611ba5575080f35b6105d490612352565b9050346105045760203660031901126105045760406101009260043581526014602052209060ff82549260018101549060018060a01b0360028201541660038201546004830154916006600585015494015494604051988952602089015260408801526060870152608086015260a0850152818116151560c085015260081c16151590820152f35b82346102da57806003193601126102da576020600a54604051908152f35b82346102da5760203660031901126102da57610528604061053c9260043581526015602052206123ec565b82346102da576105d4611c913661229c565b9060405192611c9f846123b0565b8584526105cf838383613a98565b82346102da57806003193601126102da57611cc661262f565b478015611d2c57600c5482918291829182916001600160a01b03165af1611ceb612695565b5015611cf45780f35b60405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4e6f206574686572206c65667420746f207769746864726177000000000000006044820152606490fd5b82346102da5760403660031901126102da57611d8b612286565b336001600160a01b03821603611da757610455906004356125ba565b60405163334bd91960e11b8152600490fd5b82346102da5760403660031901126102da57610455600435611dd9612286565b908084526009602052611df260016040862001546124fc565b61253c565b82346102da5760403660031901126102da57600435815260016020526040812060405190611e2482612395565b546001600160a01b0380821680845260a09290921c602084015291929015611e82575b50612710611e646001600160601b036020850151166024356127db565b925160408051939091166001600160a01b0316835292046020820152f35b604051919250611e9182612395565b54828116825260a01c60208201529082611e47565b82346102da5760203660031901126102da57600435906012548210156102da576040611ed1836122d1565b505481516001600160a01b038216815260a09190911c60ff1615156020820152f35b82346102da5760203660031901126102da5760406020916004358152601683522054604051908152f35b82346102da5760203660031901126102da5760016040602092600435815260098452200154604051908152f35b82346102da576105d4611f5c3661229c565b91613a98565b82346102da57806003193601126102da57602047604051908152f35b82346102da5760403660031901126102da57611f98612270565b602435611fa48161265b565b3315158061204e575b80612023575b61200b576001600160a01b039283169282918491167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a4825260066020526040822080546001600160a01b031916909117905580f35b60405163a9fbf51f60e01b8152336004820152602490fd5b506001600160a01b038116845260076020908152604080862033875290915284205460ff1615611fb3565b506001600160a01b038116331415611fad565b82346102da5760203660031901126102da576020906004356120828161265b565b50815260068252604060018060a01b0391205416604051908152f35b82346102da57806003193601126102da5760405190806002546120c08161231a565b8085529160019180831690811561214557506001146120ea575b61053c85610528818703826123cb565b9250600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b82841061212d5750505081016020016105288261053c6120da565b80546020858701810191909152909301928101612112565b86955061053c9693506020925061052894915060ff191682840152151560051b82010192936120da565b8390346105045760203660031901126105045760043563ffffffff60e01b8116809103610b89576020925063152a902d60e11b81148015806121b4575b501515825250f35b637965db0b60e01b83149283156121d0575b50505080846121ac565b6380ac58cd60e01b8114935090918315612219575b83156121f7575b5050508380806121c6565b925090612208575b508380806121ec565b6301ffc9a760e01b149050836121ff565b635b5e139f60e01b821493506121e5565b5f5b83811061223b5750505f910152565b818101518382015260200161222c565b906020916122648151809281855285808601910161222a565b601f01601f1916010190565b600435906001600160a01b038216820361071a57565b602435906001600160a01b038216820361071a57565b606090600319011261071a576001600160a01b0390600435828116810361071a5791602435908116810361071a579060443590565b6012548110156123065760125f527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344401905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c92168015612348575b602083101461233457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612329565b6001600160401b03811161236557604052565b634e487b7160e01b5f52604160045260245ffd5b61010081019081106001600160401b0382111761236557604052565b604081019081106001600160401b0382111761236557604052565b602081019081106001600160401b0382111761236557604052565b90601f801991011681019081106001600160401b0382111761236557604052565b9060405191825f8254926123ff8461231a565b9081845260019485811690815f1461246a575060011461242a575b5050612428925003836123cb565b565b909391505f52602090815f20935f915b81831061245257505061242893508201015f8061241a565b8554888401850152948501948794509183019161243a565b91505061242894506020925060ff191682840152151560051b8201015f8061241a565b6001600160401b03811161236557601f01601f191660200190565b9291926124b48261248d565b916124c260405193846123cb565b82948184528183011161071a578281602093845f960137010152565b9080601f8301121561071a578160206124f9933591016124a8565b90565b805f52600960205260405f20335f5260205260ff60405f2054161561251e5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b905f918083526009602052604083209160018060a01b03169182845260205260ff604084205416155f146125b55780835260096020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b905f918083526009602052604083209160018060a01b03169182845260205260ff6040842054165f146125b5578083526009602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6008546001600160a01b0316330361264357565b60405163118cdaa760e01b8152336004820152602490fd5b5f818152600460205260409020546001600160a01b031690811561267d575090565b60249060405190637e27328960e01b82526004820152fd5b3d156126bf573d906126a68261248d565b916126b460405193846123cb565b82523d5f602084013e565b606090565b9190803b6126d3575b50505050565b61271560018060a01b0380921694604051938493630a85bd0160e11b96878652336004870152166024850152604484015260806064840152608483019061224b565b03906020815f938185885af190829082612793575b50506127625782612739612695565b805191908261275b57604051633250574960e11b815260048101839052602490fd5b9050602001fd5b6001600160e01b0319160361277b57505f8080806126cd565b60249060405190633250574960e11b82526004820152fd5b909192506020813d82116127d3575b816127af602093836123cb565b810103126105045751906001600160e01b0319821682036102da5750905f8061272a565b3d91506127a2565b818102929181159184041417156127ee57565b634e487b7160e01b5f52601160045260245ffd5b811561280c570490565b634e487b7160e01b5f52601260045260245ffd5b519069ffffffffffffffffffff8216820361071a57565b908160a091031261071a5761284b81612820565b916020820151916040810151916124f9608060608401519301612820565b600e54604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa9081156128d0575f916128a0575090565b6128c1915060a03d81116128c9575b6128b981836123cb565b810190612837565b505050905090565b503d6128af565b6040513d5f823e3d90fd5b600f54604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa9081156128d0575f916128a0575090565b1561291957565b60405162461bcd60e51b815260206004820152601760248201527f4f6e6c792061646d696e732063616e20646f20746861740000000000000000006044820152606490fd5b91959493909261297860809460a0855260a085019061224b565b6001600160a01b039097166020840152604083015260608201520152565b51906001600160a01b038216820361071a57565b519063ffffffff8216820361071a57565b5190811515820361071a57565b81601f8201121561071a5780516129de8161248d565b926129ec60405194856123cb565b8184526020828401011161071a576124f9916020808501910161222a565b9060208282031261071a5781516001600160401b039283821161071a57016102c092838284031261071a57604080519485018581108382111761236557815282518552612a59602084016129aa565b6020860152612a698184016129aa565b81860152606083015160608601526080830151608086015260a083015160a0860152612a9760c084016129bb565b60c086015260e083015160e086015261010093612ab58585016129bb565b858701526101209283850151848801526101408086015181890152610160612ade8188016129bb565b818a01526101809081880151828b01526101a09283890151848c01526101c097888a0151898d01526101e09a8c8c808d01519101528c8b612b236102008092016129bb565b9101528c610220612b35818e016129bb565b910152610240808c01519088821161071a57612b558f928b908f016129c8565b910152610260808c01519088821161071a57612b758f928b908f016129c8565b910152610280808c01519088821161071a57612b958f928b908f016129c8565b9101526102a09a8b8101519088821161071a5701988c8a8a031261071a5780519c8d018d811089821117612365578152895188811161071a5789612bda918c016129c8565b8d5260208a015188811161071a576020612bf88f928c908e016129c8565b910152808a015188811161071a5789612c12918c016129c8565b908d0152606089015187811161071a5788612c2e918b016129c8565b60608d0152608089015187811161071a5788612c4b918b016129c8565b60808d015260a089015187811161071a5788612c68918b016129c8565b60a08d015260c089015187811161071a5788612c85918b016129c8565b60c08d015260e089015187811161071a5788612ca2918b016129c8565b60e08d01528089015187811161071a5788612cbe918b016129c8565b908c01528088015186811161071a5787612cd9918a016129c8565b908b01528087015185811161071a5786612cf49189016129c8565b908a01528086015184811161071a5785612d0f9188016129c8565b908901528085015183811161071a5784612d2a9187016129c8565b908801528084015182811161071a5783612d459186016129c8565b908701528383015190811161071a57612d5e92016129c8565b9083015282015290565b5f1981146127ee5760010190565b919082018092116127ee57565b919082039182116127ee57565b9060208282031261071a5781516001600160401b039283821161071a57016101008183031261071a5760405192612dc684612379565b815181811161071a5783612ddb9184016129c8565b845260208201516020850152604082015160408501526060820151600281101561071a576060850152608082015181811161071a5783612e1c9184016129c8565b608085015260a082015190811161071a5760e092612e3b9183016129c8565b60a0840152612e4c60c082016129bb565b60c084015201516001600160601b038116810361071a5760e082015290565b9091600a545f604092835191612e80836123b0565b8083526001600160a01b038681169687156132fc5785835260049360209585875283898620541692831515806132cb575b8b8752600589528a872060018154019055898752878952898c8c8920966001600160601b0360a01b9782898254161790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a80a46132b4573b6131bd575b50848484601054168a51928380926305fc0ce160e51b82525afa9081156131b357612fce8c8b612fbe60228d612f5b612f558f998e998a91613191575b505196613314565b91613314565b935193849189612f74818501988981519384920161222a565b830190601d60f91b91828c820152612f968c835193849160218501910161222a565b01906021820152612faf825180938c878501910161222a565b010360028101845201826123cb565b8c5192839283925192839161222a565b8101039060025afa156131875787918a889286518c865194612fef86612379565b8686528b8601948552878601918252606086019283526080860193845260a086019442865260c08701988b8a528d60e089019960018b528d52601490528b209651875551600187015588600287019251169082541617905551600384015551878301555160058201556006019151151561307590839060ff801983541691151516179055565b51151581549060081b61ff00169061ff00191617905560105416803b15610504578180916044885180948193630b382aed60e41b83528d898401528a60248401525af1801561317d5761316e575b50838152601683528685822055858152601783528481208782528352848120546001810180911161315b5786825260178452858220888352845285822055600a549160018301809311613148575050600a5582519485528401528201527f756915dc79fbe0544cde2132b389579561b584214b5ba2644e80d0bbb565047c90606090a1565b634e487b7160e01b825260119052602490fd5b506011602492634e487b7160e01b835252fd5b61317790612352565b5f6130c3565b86513d84823e3d90fd5b87513d85823e3d90fd5b6131ad91503d808c833e6131a581836123cb565b810190612d90565b5f612f4d565b89513d87823e3d90fd5b946132008789978c849e9a9f9b898e51809681958294630a85bd0160e11b9a8b85523390850152846024850152604484015260806064840152608483019061224b565b03925af1869181613274575b50613242578c8c8c8c61321d612695565b8051948561323c57505051633250574960e11b81529182015260249150fd5b85925001fd5b979b969a95976001600160e01b0319160361325d575f612f10565b8751633250574960e11b81528086018a9052602490fd5b9091508d81813d83116132ad575b61328c81836123cb565b8101031261128f57516001600160e01b03198116810361128f57905f61320c565b503d613282565b89516339e3563760e11b8152808801879052602490fd5b5f8a815260066020526040902080546001600160a01b0319169055848752600589528a872080545f19019055612eb1565b8651633250574960e11b815260048101849052602490fd5b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561346c575b506d04ee2d6d415b85acef81000000008083101561345d575b50662386f26fc100008083101561344e575b506305f5e1008083101561343f575b5061271080831015613430575b506064821015613420575b600a80921015613416575b600190816021818601956133ac8761248d565b966133ba60405198896123cb565b8088526133c9601f199161248d565b01366020890137860101905b6133e1575b5050505090565b5f19019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215613411579190826133d5565b6133da565b9160010191613399565b919060646002910491019161338e565b6004919392049101915f613383565b6008919392049101915f613376565b6010919392049101915f613367565b6020919392049101915f613355565b60409350810491505f61333c565b60105460405163c166549960e01b81526001600160a01b0392916020908290600490829087165afa9081156128d0575f91613525575b5060245f9260405194859384926322b76fcf60e21b84526004840152165afa9081156128d0575f9161350c575b506060810151906101608101516134f2575090565b6101a08101514210613502575090565b6101809150015190565b61351f913d8091833e61124d81836123cb565b5f6134dd565b906020823d821161355c575b8161353e602093836123cb565b810103126102da57509060246135545f93612996565b9192506134b0565b3d9150613531565b5f818152600460205260409020546001600160a01b031615613a1057805f52601460205260405f2060405161359881612379565b8154815260e060ff60066001850154946020850195865260018060a01b0360028201541660408601526003810154606086015260048101546080860152600581015460a08601520154818116151560c085015260081c16151591015260018060a01b0360105416906040519063c166549960e01b8252602082600481865afa9182156128d0575f926139d3575b50516040516322b76fcf60e21b81526004810191909152905f90829060249082906001600160a01b03165afa9081156128d0575f916139b9575b5060019060c08101511561399b575b835f52601560205261368360405f205461231a565b1561369e575050505f5260156020526124f960405f206123ec565b6101c0819492939401519360045f61026084015192604051928380926305fc0ce160e51b82525afa80156128d0576020915f91613981575b5001516102a0830151906102008401511515926102208501511515946101000151151595604051986137078a612379565b8952602089015260408801526060870152608086015260a085015260c084015260e0830152600160a01b600190036013541690604051809381926303605e0d60e51b835230600484015260248301606090528151606484015260208201516084840152604082015160a48401610100905261016484016137869161224b565b606083015160c485015260808301516063198583030160e486015280516101e080845283016137b49161224b565b60208201519083810360208501526137cb9161224b565b60408201519083810360408501526137e29161224b565b60608201519083810360608501526137f99161224b565b60808201519083810360808501526138109161224b565b60a08201519083810360a08501526138279161224b565b60c08201519083810360c085015261383e9161224b565b60e08201519083810360e08501526138559161224b565b6101008201519083810361010085015261386e9161224b565b610120908183015191848203908501526138879161224b565b610140908183015191848203908501526138a09161224b565b610160908183015191848203908501526138b99161224b565b610180908183015191848203908501526138d29161224b565b6101a0908183015191848203908501526138eb9161224b565b906101c0015191808203906101c001526139049161224b565b9160a0810151151561010485015260c0810151151561012485015260e0015115156101448401521515604483015203815a935f94fa9081156128d0575f9161394a575090565b90503d805f833e61395b81836123cb565b810160208282031261071a5781516001600160401b03811161071a576124f992016129c8565b61399591503d805f833e6131a581836123cb565b5f6136d6565b905060e081015142115f146139b25760019061366e565b5f9061366e565b6139cd91503d805f833e61124d81836123cb565b5f61365f565b9091506020813d602011613a08575b816139ef602093836123cb565b8101031261071a57613a015f91612996565b9190613625565b3d91506139e2565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b6001600160401b0381116123655760051b60200190565b80518210156123065760209160051b010190565b909291925f9380855260208091601482526040808820946016845281892054908960018060a01b039283601054169085519889809363c166549960e01b825260049b8c915afa918215613d7e5790839291869492613d43575b50602490875194859384926322b76fcf60e21b84528d840152165afa908115613d3957908392918c91613d1f575b505f805160206145d18339815191528c5260098752848c20338d52875260ff858d20541615613cd8575b5016968715613cc157838a5285855281838b2054169433151580613c2f575b5088867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef829c9d8a899584613bfe575b8583526005815289832060018154019055868352528781206001600160601b0360a01b9e8f82541617905580a41690818403613bdf57505050505060020191825416179055565b516364283d7b60e01b8152938401526024830152604482015260649150fd5b5f87815260066020526040902080546001600160a01b03191690558483526005815289832080545f19019055613b98565b80613c80575b15613c40575f613b68565b84878588613c5d57916024925191637e27328960e01b8352820152fd5b5163177e802f60e01b815233918101918252602082019290925281906040010390fd5b503386148015613ca5575b80613c355750848b52600681523383858d20541614613c35565b50858b5260078152838b20338c52815260ff848c205416613c8b565b8251633250574960e11b81528087018b9052602490fd5b610100919250015115613ced5781905f613b49565b825162461bcd60e51b8152808701869052600c60248201526b6e6f742073656c6c61626c6560a01b6044820152606490fd5b613d3391503d808e833e61124d81836123cb565b5f613b1f565b84513d8d823e3d90fd5b935090508783813d8111613d77575b613d5c81836123cb565b81010312610504576024613d708694612996565b9190613af1565b503d613d52565b86513d85823e3d90fd5b80613d9257505f90565b80613d9c82614511565b916070831015613dd95750816070031b5b6001600160701b0316613fff90910160701b6001600160801b03161760801b6001600160801b03191690565b60708311613de8575b50613dad565b606f1983011c90505f613de2565b617fff8160801c9160f01c1690613fff8210613e54576001607f1b81101561071a576140fe821161071a576001600160701b0316600160701b179061406f80821015613e4157031c90565b8111613e4b575090565b61406e19011b90565b50505f90565b617fff808260f01c16818460f01c16908281145f14613ee0575003613eb8576001600160801b031981811683821603613e9a5750600160ff1b9091161890565b81831816600160ff1b03613eac571790565b5061ffff60ef1b919050565b90600160801b600160ff1b038116613ed6575061ffff60ef1b919050565b600160ff1b161890565b82829392959495145f14613f1157509192915050600160801b600160ff1b038116613ed6575061ffff60ef1b919050565b6001600160701b0391828660801c169180155f1461409a57506001935b838660801c169080155f1461408b57506001925b02918294831561406a57019283905f600160e11b8510614046575060e180925b0191614070948584105f14613fa1575050505050505050905f9182915b6001600160801b03199360701b916001607f1b911860801c16171760801b1690565b6140e0841015613fde5750505050508082105f14613fc457031c905b5f92613f7f565b8111613fd2575b5090613fbd565b61406f19011b5f613fcb565b91945091945061c0dd85989798969396115f14614002575050505050915f91613f7f565b9091929395969450607082115f146140285750606f19011c5b16916140de190192613f7f565b9060708110614039575b505061401b565b6070031b90505f80614032565b50600160e01b841061405c5760e05b8092613f62565b61406584614511565b614055565b50600160ff1b965f961887161594506140869350505050575090565b905090565b92600160701b90911790613f42565b93600160701b90921791613f2e565b617fff61400560f083901c82168083036140cd5750036124f9575061ffff60ef1b90565b906001600160701b0390818560801c1683155f146142845780614264575b6019606c1b9004928315614242576001606c1b841061422e575f600160731b85106141f8575061411a84614511565b925b81840190614071840182111561415f57505050505050905f905b6001600160801b03199260701b906001607f1b906204005960ec1b1860801c16171760801b1690565b90919293949550613ffc9484868401105f1461418557505050505050505f908190614136565b84613f8c8401105f146141ce57505050808301828111156141ac575003011b5b5f91614136565b829350919091106141bf575b50506141a5565b9003613ffb19011c5f806141b8565b909250613f8d9450607081969296116141ed575b501692030191614136565b606f19011c5f6141e2565b600160721b8510614210575060ff60725b169261411c565b50600160711b84106142255760ff6071614209565b60ff6070614209565b634e487b7160e01b5f52600160045260245ffd5b50600160ff1b945f94506204005960ec1b188516159250614086915050575090565b8093506142719150614511565b60e20391821b613f9360019301906140eb565b600160701b1760721b6140eb565b90617fff808360f01c1690808360f01c16918181145f146142bf575003613ed6575061ffff60ef1b919050565b8282036142f8575050506dffffffffffffffffffffffffffff60801b8116156142ee575061ffff60ef1b919050565b18600160ff1b1690565b600160801b600160ff1b0392848416614332575050508216614320575061ffff60ef1b919050565b617fff60f01b9118600160ff1b161790565b909192506001600160701b0394939490818660801c169080155f1461450557506001905b828660801c1684155f146144f257806144ca575b9061437491612802565b9283156144af576001606c1b841061422e575f600160731b8510614479575061439c84614511565b925b8184019061407184018211156143da575050505050509118608090811c6001607f1b1660709290921b91909117901b6001600160801b03191690565b90919293949550613ffc9796979484868401105f146144045750505050505050905f918291613f7f565b84613f8c8401105f1461444e575050508083018281111561442b575003011b905f92613f7f565b8293509190911061443f575b505090613fbd565b9003613ffb19011c5f80614437565b909250613f8d9450607081979692971161446e575b501693030192613f7f565b606f19011c5f614463565b600160721b8510614491575060ff60725b169261439e565b50600160711b84106144a65760ff607161448a565b60ff607061448a565b50600160ff1b955f9518861615935061408692505050575090565b9350614374906144d985614511565b60e20394851b926001956071199101019290915061436a565b6143749190600160701b1760721b612802565b90600160701b17614356565b801561071a575f90600160801b8110156145c5575b80600160401b60029210156145b9575b6401000000008110156145ad575b620100008110156145a1575b610100811015614595575b6010811015614589575b600481101561457e575b10156145785790565b60010190565b91810191811c61456f565b6004928301921c614565565b6008928301921c61455b565b6010928301921c614550565b6020928301921c614544565b6040928301921c614536565b60809150811c61452656fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212201aefb3dd32fc94315259a4c167992642fa8fffb25002665d7c1090ca8fc0f02164736f6c634300081400332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH3 0x9B3 JUMPI PUSH3 0x51E6 DUP1 CODESIZE SUB DUP1 SWAP2 PUSH3 0x20 DUP3 PUSH1 0x80 PUSH3 0x9EE JUMP JUMPDEST PUSH1 0x80 CODECOPY PUSH2 0x160 DUP2 SLT PUSH3 0x9B3 JUMPI PUSH3 0x39 PUSH1 0x80 PUSH3 0xA12 JUMP JUMPDEST PUSH1 0xA0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x9B3 JUMPI PUSH1 0x80 ADD SWAP2 DUP1 PUSH1 0x80 ADD PUSH1 0x1F DUP5 ADD SLT ISZERO PUSH3 0x9B3 JUMPI DUP3 MLOAD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT PUSH3 0x76C JUMPI DUP3 PUSH1 0x5 SHL SWAP4 PUSH1 0x40 MLOAD SWAP4 PUSH3 0x88 PUSH1 0x20 DUP8 ADD DUP7 PUSH3 0x9EE JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP2 SWAP7 DUP4 ADD ADD SWAP2 DUP5 PUSH1 0x80 ADD DUP4 GT PUSH3 0x9B3 JUMPI PUSH1 0x20 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH3 0x9B7 JUMPI POP POP POP PUSH3 0xC0 PUSH1 0x40 PUSH1 0x80 ADD PUSH3 0xA12 JUMP JUMPDEST SWAP4 PUSH3 0xCD PUSH1 0xE0 PUSH3 0xA12 JUMP JUMPDEST SWAP5 PUSH3 0xDB PUSH2 0x100 PUSH3 0xA12 JUMP JUMPDEST SWAP6 PUSH3 0xE9 PUSH2 0x120 PUSH3 0xA12 JUMP JUMPDEST PUSH3 0xF6 PUSH2 0x140 PUSH3 0xA12 JUMP JUMPDEST PUSH2 0x160 MLOAD SWAP1 SWAP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x9B3 JUMPI PUSH1 0x80 DUP9 ADD PUSH1 0x9F DUP3 ADD SLT ISZERO PUSH3 0x9B3 JUMPI PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x76C JUMPI PUSH1 0x40 MLOAD SWAP9 PUSH3 0x149 PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP12 PUSH3 0x9EE JUMP JUMPDEST DUP2 DUP11 MSTORE PUSH1 0x80 ADD PUSH1 0xA0 DUP4 DUP4 ADD ADD GT PUSH3 0x9B3 JUMPI PUSH3 0x16E SWAP2 PUSH1 0x20 DUP11 ADD SWAP1 PUSH1 0xA0 ADD PUSH3 0xA27 JUMP JUMPDEST PUSH3 0x17B PUSH2 0x180 PUSH3 0xA12 JUMP JUMPDEST SWAP4 PUSH3 0x189 PUSH2 0x1A0 PUSH3 0xA12 JUMP JUMPDEST PUSH2 0x1C0 MLOAD SWAP9 SWAP1 SWAP8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP11 AND DUP11 SUB PUSH3 0x9B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x1E6 PUSH1 0x2B DUP3 DUP5 MLOAD PUSH3 0x1C1 DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH3 0xA27 JUMP JUMPDEST DUP2 ADD PUSH11 0x40C4F240A6CAD8D8A8D2F PUSH1 0xAB SHL PUSH1 0x20 DUP3 ADD MSTORE SUB PUSH1 0xB DUP2 ADD DUP5 MSTORE ADD DUP3 PUSH3 0x9EE JUMP JUMPDEST PUSH3 0x22F PUSH1 0x2F PUSH1 0x40 MLOAD DUP5 PUSH3 0x206 DUP3 SWAP7 MLOAD DUP1 SWAP3 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 ADD PUSH3 0xA27 JUMP JUMPDEST DUP2 ADD PUSH15 0x2053656C6C5469785469636B657473 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE SUB PUSH1 0xF DUP2 ADD DUP6 MSTORE ADD DUP4 PUSH3 0x9EE JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH3 0x76C JUMPI PUSH1 0x2 SLOAD SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH3 0x9A8 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH3 0x8A1 JUMPI DUP2 PUSH1 0x1F DUP5 SWAP4 GT PUSH3 0x947 JUMPI JUMPDEST POP PUSH1 0x20 SWAP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 EQ PUSH3 0x8CC JUMPI PUSH0 SWAP3 PUSH3 0x8C0 JUMPI JUMPDEST POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR PUSH1 0x2 SSTORE JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH3 0x76C JUMPI PUSH1 0x3 SLOAD SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH3 0x8B5 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH3 0x8A1 JUMPI DUP2 PUSH1 0x1F DUP5 SWAP4 GT PUSH3 0x831 JUMPI JUMPDEST POP PUSH1 0x20 SWAP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 EQ PUSH3 0x7A4 JUMPI PUSH0 SWAP3 PUSH3 0x798 JUMPI JUMPDEST POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR PUSH1 0x3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH3 0x780 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0xC8 OR SWAP1 SSTORE PUSH0 JUMPDEST DUP10 MLOAD DUP2 LT ISZERO PUSH3 0x3DC JUMPI PUSH3 0x394 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x38C DUP4 DUP14 PUSH3 0xA4A JUMP JUMPDEST MLOAD AND PUSH3 0xA5F JUMP JUMPDEST POP PUSH3 0x3B5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x3AD DUP4 DUP14 PUSH3 0xA4A JUMP JUMPDEST MLOAD AND PUSH3 0xB00 JUMP JUMPDEST POP PUSH0 NOT DUP2 EQ PUSH3 0x3C8 JUMPI PUSH1 0x1 ADD PUSH3 0x36A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP15 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x60 SWAP5 SWAP1 SWAP5 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0xD DUP1 SLOAD DUP4 AND SWAP4 DUP3 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0xE DUP1 SLOAD DUP3 AND SWAP4 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE PUSH1 0xF DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0xD0D5E3DB44DE05E9F294BB0A3BEEAF030DE24ADA OR SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP5 SWAP6 SWAP5 PUSH3 0x473 DUP2 PUSH3 0x9D2 JUMP JUMPDEST PUSH20 0x2F7B97837F2D14BA2ED3A4B2282E259126A9B848 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x12 SLOAD PUSH9 0x10000000000000000 DUP2 LT ISZERO PUSH3 0x76C JUMPI PUSH1 0x1 DUP2 ADD DUP1 PUSH1 0x12 SSTORE DUP2 LT ISZERO PUSH3 0x758 JUMPI PUSH1 0x12 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP2 MLOAD AND DUP3 SLOAD SWAP2 PUSH1 0x20 PUSH1 0xFF PUSH1 0xA0 SHL SWAP2 ADD MLOAD ISZERO ISZERO PUSH1 0xA0 SHL AND SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA8 SHL SUB NOT AND OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH3 0x4F9 DUP2 PUSH3 0x9D2 JUMP JUMPDEST PUSH20 0x9999F7FEA5938FD3B1E26A12C3F2FB024E194F97 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x12 SLOAD PUSH9 0x10000000000000000 DUP2 LT ISZERO PUSH3 0x76C JUMPI PUSH1 0x1 DUP2 ADD DUP1 PUSH1 0x12 SSTORE DUP2 LT ISZERO PUSH3 0x758 JUMPI PUSH1 0x12 PUSH0 SWAP1 DUP2 MSTORE DUP3 MLOAD PUSH32 0xBB8A6A4669BA250D26CD7A459ECA9D215F8307E33AEBE50379BC5A3617EC3444 SWAP3 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND OR SWAP4 ISZERO ISZERO PUSH1 0xA0 SHL PUSH1 0xFF PUSH1 0xA0 SHL AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP5 DUP4 AND SWAP5 DUP6 OR SWAP1 SWAP2 SSTORE PUSH1 0x13 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP5 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x3299E865 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 MLOAD PUSH1 0x44 DUP7 ADD DUP2 SWAP1 MSTORE DUP6 SWAP4 PUSH1 0x64 DUP6 ADD SWAP4 SWAP1 SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT PUSH3 0x735 JUMPI POP POP POP PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x20 SWAP3 SWAP1 DUP3 SWAP1 SUB SWAP1 DUP3 SWAP1 PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL SWAP1 DUP2 ISZERO PUSH3 0x72A JUMPI PUSH0 SWAP2 PUSH3 0x6E5 JUMPI JUMPDEST POP PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0xC SLOAD AND SWAP1 PUSH2 0x2710 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND DUP2 LT PUSH3 0x6BD JUMPI POP DUP2 ISZERO PUSH3 0x6A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x672 DUP2 PUSH3 0x9D2 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND OR PUSH0 SSTORE PUSH1 0x40 MLOAD PUSH2 0x4626 SWAP1 DUP2 PUSH3 0xB80 DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5B6CC805 PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6F483D09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 SWAP2 POP REVERT JUMPDEST SWAP1 PUSH1 0x20 DUP3 RETURNDATASIZE PUSH1 0x20 GT PUSH3 0x721 JUMPI JUMPDEST DUP2 PUSH3 0x702 PUSH1 0x20 SWAP4 DUP4 PUSH3 0x9EE JUMP JUMPDEST DUP2 ADD SUB SLT PUSH3 0x71E JUMPI POP PUSH3 0x717 SWAP1 PUSH3 0xA12 JUMP JUMPDEST DUP3 PUSH3 0x626 JUMP JUMPDEST DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH3 0x6F3 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE DUP8 SWAP6 POP PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH3 0x5EF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST ADD MLOAD SWAP1 POP PUSH0 DUP1 PUSH3 0x2EA JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 DUP2 MSTORE SWAP4 POP PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B SWAP2 SWAP1 JUMPDEST PUSH1 0x1F NOT DUP5 AND DUP6 LT PUSH3 0x815 JUMPI PUSH1 0x1 SWAP5 POP DUP4 PUSH1 0x1F NOT DUP2 AND LT PUSH3 0x7FC JUMPI JUMPDEST POP POP POP DUP2 SHL ADD PUSH1 0x3 SSTORE PUSH3 0x2FF JUMP JUMPDEST ADD MLOAD PUSH0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE PUSH0 DUP1 DUP1 PUSH3 0x7ED JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x7D0 JUMP JUMPDEST PUSH1 0x3 PUSH0 MSTORE SWAP1 SWAP2 POP PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT PUSH3 0x899 JUMPI JUMPDEST SWAP1 DUP5 SWAP4 SWAP3 SWAP2 JUMPDEST PUSH1 0x1F DUP4 ADD PUSH1 0x5 SHR DUP3 ADD DUP2 LT PUSH3 0x88A JUMPI POP POP PUSH3 0x2D2 JUMP JUMPDEST PUSH0 DUP2 SSTORE DUP6 SWAP5 POP PUSH1 0x1 ADD PUSH3 0x872 JUMP JUMPDEST POP DUP1 PUSH3 0x86C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH3 0x2BC JUMP JUMPDEST ADD MLOAD SWAP1 POP PUSH0 DUP1 PUSH3 0x282 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 DUP2 MSTORE SWAP4 POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x51C6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 SWAP1 JUMPDEST PUSH1 0x1F NOT DUP5 AND DUP6 LT PUSH3 0x92B JUMPI PUSH1 0x1 SWAP5 POP DUP4 PUSH1 0x1F NOT DUP2 AND LT PUSH3 0x912 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD PUSH1 0x2 SSTORE PUSH3 0x297 JUMP JUMPDEST ADD MLOAD PUSH0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE PUSH0 DUP1 DUP1 PUSH3 0x903 JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x8E6 JUMP JUMPDEST PUSH1 0x2 PUSH0 MSTORE SWAP1 SWAP2 POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x51C6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 PUSH1 0x20 DUP6 LT PUSH3 0x99D JUMPI JUMPDEST SWAP1 PUSH1 0x1F DUP6 SWAP5 SWAP4 SWAP3 ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH3 0x98E JUMPI POP PUSH3 0x26A JUMP JUMPDEST PUSH0 DUP2 SSTORE DUP5 SWAP4 POP PUSH1 0x1 ADD PUSH3 0x97F JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH3 0x971 JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH3 0x254 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 SWAP2 PUSH3 0x9C6 DUP5 PUSH3 0xA12 JUMP JUMPDEST DUP2 MSTORE ADD SWAP2 ADD SWAP1 PUSH3 0xA6 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH3 0x76C JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND DUP2 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT SWAP1 DUP3 LT OR PUSH3 0x76C JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH3 0x9B3 JUMPI JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT PUSH3 0xA39 JUMPI POP POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA29 JUMP JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH3 0x758 JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH32 0x5E421A728E346CCAF4D82870EC53D59217A30D3483C6688054A2A67760F2138C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 SWAP1 PUSH1 0xFF AND PUSH3 0xAFB JUMPI DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x51A6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE CALLER SWAP4 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH32 0xEC8156718A8372B1DB44BB411437D0870F3E3790D4A08526D024CE1B0B668F6B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF AND PUSH3 0xB7B JUMPI DUP2 DUP1 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP2 DUP4 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE CALLER SWAP2 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x51A6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP SWAP1 JUMP INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 SWAP1 PUSH1 0xE0 DUP3 CALLDATALOAD DUP2 SHR SWAP2 DUP3 PUSH4 0x1FFC9A7 EQ PUSH2 0x216F JUMPI POP DUP2 PUSH4 0x6FDDE03 EQ PUSH2 0x209E JUMPI DUP2 PUSH4 0x81812FC EQ PUSH2 0x2061 JUMPI DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x1F7E JUMPI DUP2 PUSH4 0x12065FE0 EQ PUSH2 0x1F62 JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x1F4A JUMPI DUP2 PUSH4 0x248A9CA3 EQ PUSH2 0x1F1D JUMPI DUP2 PUSH4 0x24CDA745 EQ PUSH2 0x1EF3 JUMPI DUP2 PUSH4 0x26C91CAD EQ PUSH2 0x1EA6 JUMPI DUP2 PUSH4 0x2A55205A EQ PUSH2 0x1DF7 JUMPI DUP2 PUSH4 0x2F2FF15D EQ PUSH2 0x1DB9 JUMPI DUP2 PUSH4 0x36568ABE EQ PUSH2 0x1D71 JUMPI DUP2 PUSH4 0x3CCFD60B EQ PUSH2 0x1CAD JUMPI DUP2 PUSH4 0x42842E0E EQ PUSH2 0x1C7F JUMPI DUP2 PUSH4 0x45A986C9 EQ PUSH2 0x1C54 JUMPI DUP2 PUSH4 0x4FDF4780 EQ PUSH2 0x1C36 JUMPI DUP2 PUSH4 0x50B44712 EQ PUSH2 0x1BAE JUMPI DUP2 PUSH4 0x5F0D5B85 EQ PUSH2 0x1B0B JUMPI DUP2 PUSH4 0x6352211E EQ PUSH2 0x1ADA JUMPI DUP2 PUSH4 0x6BB03A87 EQ PUSH2 0x1935 JUMPI DUP2 PUSH4 0x6E754D3D EQ PUSH2 0x185D JUMPI DUP2 PUSH4 0x6F269B7A EQ PUSH2 0x1571 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x1519 JUMPI DUP2 PUSH4 0x715018A6 EQ PUSH2 0x14BC JUMPI DUP2 PUSH4 0x715E76AA EQ PUSH2 0x1493 JUMPI DUP2 PUSH4 0x7247B789 EQ PUSH2 0xBF9 JUMPI DUP2 PUSH4 0x75B238FC EQ PUSH2 0xBD1 JUMPI DUP2 PUSH4 0x796C8481 EQ PUSH2 0xBA8 JUMPI DUP2 PUSH4 0x871A1F2D EQ PUSH2 0xB8D JUMPI DUP2 PUSH4 0x8AB234B6 EQ PUSH2 0xAD5 JUMPI DUP2 PUSH4 0x8DA5CB5B EQ PUSH2 0xAAC JUMPI DUP2 PUSH4 0x91D14854 EQ PUSH2 0xA62 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x996 JUMPI DUP2 PUSH4 0x9AF1179E EQ PUSH2 0x73A JUMPI POP DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0xAA9A0912 EQ PUSH2 0x61F JUMPI DUP1 PUSH4 0xAB757D61 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xB4C24AF7 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xC6458486 EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0xCAC92669 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xD56D2E60 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xD7FF31E7 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0xDC40DA5C EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xE274FD24 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xF074EC5A EQ PUSH2 0x2DD JUMPI PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x26A PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x262F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x8 SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL DUP3 AND OR PUSH1 0x8 SSTORE AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x320 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x40 PUSH2 0x32A PUSH2 0x2286 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 SWAP4 AND DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE KECCAK256 SWAP2 AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x3FC PUSH2 0x2270 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x17 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x24 CALLDATALOAD DUP3 MSTORE DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x455 PUSH1 0x4 CALLDATALOAD PUSH2 0x437 PUSH2 0x2286 JUMP JUMPDEST SWAP1 DUP1 DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH2 0x450 PUSH1 0x1 PUSH1 0x40 DUP7 KECCAK256 ADD SLOAD PUSH2 0x24FC JUMP JUMPDEST PUSH2 0x25BA JUMP JUMPDEST POP DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP1 SWAP2 SUB PUSH2 0x504 JUMPI PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND ISZERO PUSH2 0x4BF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0xB SLOAD AND OR PUSH1 0xB SSTORE DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666F756E646572732063616E20646F207468617400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x53C PUSH2 0x528 PUSH1 0x4 CALLDATALOAD PUSH2 0x3564 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x11 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x583 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x58B PUSH2 0x2286 JUMP JUMPDEST SWAP1 PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT PUSH2 0x5D7 JUMPI CALLDATASIZE PUSH1 0x23 DUP6 ADD SLT ISZERO PUSH2 0x5D7 JUMPI PUSH2 0x5C3 PUSH2 0x5D4 SWAP5 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x24A8 JUMP JUMPDEST SWAP3 PUSH2 0x5CF DUP4 DUP4 DUP4 PUSH2 0x3A98 JUMP JUMPDEST PUSH2 0x26C4 JUMP JUMPDEST DUP1 RETURN JUMPDEST DUP5 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0xB SLOAD PUSH1 0x60 SHR PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x2869 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x669 PUSH2 0x658 PUSH2 0x647 PUSH1 0x4 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x652 PUSH1 0x24 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST SWAP1 PUSH2 0x3E5A JUMP JUMPDEST PUSH2 0x663 PUSH1 0x44 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST SWAP1 PUSH2 0x4292 JUMP JUMPDEST PUSH2 0x3DF6 JUMP JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x688 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 ISZERO ISZERO SWAP1 DUP2 DUP4 SUB PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 ISZERO PUSH2 0x701 JUMPI PUSH2 0x6D2 SWAP1 CALLER DUP6 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 DUP5 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 CALLER SWAP3 LOG3 DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x504 JUMPI DUP3 PUSH2 0x756 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 SWAP1 DUP8 AND DUP2 JUMPDEST DUP4 DUP2 LT PUSH2 0x957 JUMPI POP PUSH2 0x77F DUP7 PUSH2 0x3A6D JUMP JUMPDEST SWAP6 PUSH2 0x78D PUSH1 0x40 MLOAD SWAP8 DUP9 PUSH2 0x23CB JUMP JUMPDEST DUP1 DUP8 MSTORE PUSH2 0x79C PUSH1 0x1F NOT SWAP2 PUSH2 0x3A6D JUMP JUMPDEST ADD DUP6 JUMPDEST DUP2 DUP2 LT PUSH2 0x90B JUMPI POP POP DUP5 JUMPDEST DUP4 DUP2 LT PUSH2 0x83F JUMPI POP POP POP POP PUSH1 0x40 MLOAD SWAP4 DUP1 DUP6 ADD SWAP2 DUP2 DUP7 MSTORE DUP5 MLOAD DUP1 SWAP4 MSTORE DUP2 PUSH1 0x40 DUP8 ADD SWAP6 ADD SWAP4 SWAP1 JUMPDEST DUP4 DUP3 LT PUSH2 0x7DC JUMPI DUP7 DUP7 SUB DUP8 RETURN JUMPDEST DUP5 MLOAD DUP1 MLOAD DUP8 MSTORE DUP1 DUP5 ADD MLOAD DUP8 DUP6 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP11 AND SWAP1 DUP9 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD MLOAD ISZERO ISZERO SWAP1 DUP9 ADD MSTORE DUP2 ADD MLOAD ISZERO ISZERO DUP7 DUP3 ADD MSTORE PUSH2 0x100 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP3 ADD SWAP4 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x7CF JUMP JUMPDEST DUP1 DUP7 SWAP9 SWAP6 SWAP7 MSTORE PUSH1 0x14 DUP6 MSTORE PUSH1 0x40 DUP9 KECCAK256 DUP10 PUSH1 0x2 DUP3 ADD SLOAD AND SWAP1 DUP4 DUP3 EQ PUSH2 0x871 JUMPI JUMPDEST POP POP PUSH2 0x868 SWAP1 PUSH2 0x2D68 JUMP JUMPDEST SWAP7 SWAP5 SWAP4 SWAP7 PUSH2 0x7AA JUMP JUMPDEST PUSH1 0x6 PUSH1 0x40 SWAP6 SWAP4 SWAP6 MLOAD SWAP2 PUSH2 0x883 DUP4 PUSH2 0x2379 JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP4 DUP5 DUP3 ADD SLOAD DUP11 DUP6 ADD MSTORE PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE ADD SLOAD PUSH1 0xFF SWAP1 DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO DUP9 DUP3 ADD MSTORE PUSH2 0x8D8 DUP4 DUP11 PUSH2 0x3A84 JUMP JUMPDEST MSTORE PUSH2 0x8E3 DUP3 DUP10 PUSH2 0x3A84 JUMP JUMPDEST POP DUP2 ADD DUP1 SWAP2 GT PUSH2 0x8F7 JUMPI SWAP2 PUSH2 0x868 DUP11 PUSH2 0x85D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP9 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP9 REVERT JUMPDEST SWAP8 DUP1 SWAP6 SWAP7 SWAP9 PUSH1 0x40 MLOAD PUSH2 0x91C DUP2 PUSH2 0x2379 JUMP JUMPDEST DUP11 DUP2 MSTORE DUP11 DUP4 DUP3 ADD MSTORE DUP11 PUSH1 0x40 DUP3 ADD MSTORE DUP11 PUSH1 0x60 DUP3 ADD MSTORE DUP11 PUSH1 0x80 DUP3 ADD MSTORE DUP11 PUSH1 0xA0 DUP3 ADD MSTORE DUP11 PUSH1 0xC0 DUP3 ADD MSTORE DUP11 DUP10 DUP3 ADD MSTORE DUP3 DUP3 DUP12 ADD ADD MSTORE ADD SWAP8 SWAP6 SWAP5 SWAP8 PUSH2 0x79F JUMP JUMPDEST DUP1 DUP7 SWAP9 SWAP6 SWAP7 MSTORE PUSH1 0x14 DUP6 MSTORE DUP2 DUP10 PUSH1 0x2 PUSH1 0x40 DUP12 KECCAK256 ADD SLOAD AND EQ PUSH2 0x984 JUMPI JUMPDEST PUSH2 0x97B SWAP1 PUSH2 0x2D68 JUMP JUMPDEST SWAP7 SWAP5 SWAP4 SWAP7 PUSH2 0x76E JUMP JUMPDEST SWAP6 PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x8F7 JUMPI SWAP6 PUSH2 0x972 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 MLOAD PUSH0 PUSH1 0x3 SLOAD PUSH2 0x9B7 DUP2 PUSH2 0x231A JUMP JUMPDEST DUP1 DUP5 MSTORE SWAP1 PUSH1 0x1 SWAP1 DUP2 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0xA3B JUMPI POP PUSH1 0x1 EQ PUSH2 0x9E1 JUMPI JUMPDEST PUSH2 0x53C DUP5 PUSH2 0x528 DUP2 DUP7 SUB DUP3 PUSH2 0x23CB JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 DUP2 MSTORE SWAP3 POP PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP3 DUP5 LT PUSH2 0xA23 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x528 DUP3 PUSH2 0x9D1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xA0B JUMP JUMPDEST PUSH1 0xFF NOT AND PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 ISZERO ISZERO PUSH1 0x5 SHL DUP6 ADD SWAP1 SWAP3 ADD SWAP3 POP PUSH2 0x528 SWAP2 POP DUP4 SWAP1 POP PUSH2 0x9D1 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH2 0xA7E PUSH2 0x2286 JUMP JUMPDEST SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP2 DUP3 SWAP1 SUB PUSH2 0xB89 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0xB0A DUP4 PUSH2 0x2395 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x1 DUP3 MSTORE PUSH1 0x12 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0xB75 JUMPI DUP1 PUSH1 0x1 PUSH2 0xB34 SWAP3 ADD PUSH1 0x12 SSTORE PUSH2 0x22D1 JUMP JUMPDEST SWAP4 SWAP1 SWAP4 PUSH2 0xB61 JUMPI MLOAD DUP4 SLOAD SWAP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 ISZERO ISZERO PUSH1 0xA0 SHL PUSH1 0xFF PUSH1 0xA0 SHL AND OR SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 SWAP1 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x28DB JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE RETURN JUMPDEST DUP3 PUSH1 0xA0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x504 JUMPI PUSH2 0xC25 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST SWAP1 PUSH1 0x64 CALLDATALOAD ISZERO ISZERO PUSH1 0x64 CALLDATALOAD SUB PUSH2 0x71A JUMPI PUSH1 0x84 CALLDATALOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x11 SLOAD AND CALLER DUP4 MSTORE PUSH1 0x17 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0x24 CALLDATALOAD DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SLOAD DUP2 EXTCODESIZE ISZERO PUSH2 0x148F JUMPI PUSH2 0xC8D DUP5 SWAP3 DUP4 SWAP3 PUSH1 0x40 MLOAD SWAP5 DUP6 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x758DDFDD PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD CALLER DUP13 PUSH1 0x4 DUP8 ADD PUSH2 0x295E JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xEBC JUMPI SWAP1 DUP4 SWAP2 PUSH2 0x147B JUMPI JUMPDEST POP POP DUP2 SWAP3 PUSH1 0x64 CALLDATALOAD PUSH2 0x13B2 JUMPI JUMPDEST POP PUSH2 0xCB7 PUSH1 0x24 CALLDATALOAD PUSH2 0x347A JUMP JUMPDEST SWAP3 PUSH2 0xCC4 PUSH1 0x44 CALLDATALOAD DUP6 PUSH2 0x27DB JUMP JUMPDEST POP PUSH2 0xCCD PUSH2 0x2869 JUMP JUMPDEST PUSH2 0xCD5 PUSH2 0x28DB JUMP JUMPDEST SWAP2 PUSH5 0x2540BE400 SWAP3 DUP1 DUP5 DUP2 MUL DIV DUP5 EQ DUP2 ISZERO OR ISZERO PUSH2 0x139E JUMPI DUP3 DUP5 DUP2 MUL DIV DUP5 EQ DUP4 ISZERO OR ISZERO PUSH2 0x139E JUMPI PUSH2 0xD1C PUSH1 0x44 CALLDATALOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0xD16 DUP8 DUP8 MUL DUP12 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x131D JUMPI PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 PUSH1 0x20 DUP3 PUSH1 0x24 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x114A JUMPI DUP9 SWAP3 PUSH2 0x12E0 JUMPI JUMPDEST POP PUSH5 0xE8D4A51000 SWAP1 DIV GT PUSH2 0x129B JUMPI JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x1136 JUMPI DUP8 SWAP1 DUP2 SWAP1 PUSH2 0x125B JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x24 DUP1 CALLDATALOAD PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP4 POP DUP4 SWAP2 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1136 JUMPI SWAP1 PUSH2 0x1E0 SWAP2 DUP9 SWAP2 PUSH2 0x1239 JUMPI JUMPDEST POP ADD MLOAD DUP7 JUMPDEST PUSH1 0x44 CALLDATALOAD DUP2 LT PUSH2 0xEC7 JUMPI PUSH1 0x10 SLOAD DUP9 SWAP1 DUP2 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0xEA1 JUMPI DUP3 DUP1 SWAP2 PUSH1 0x44 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 CALLDATALOAD PUSH1 0x4 DUP5 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x24 DUP5 ADD MSTORE GAS CALL SWAP1 DUP2 ISZERO PUSH2 0xEBC JUMPI DUP4 SWAP2 PUSH2 0xEA5 JUMPI JUMPDEST POP POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41B2819 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP3 SWAP1 DUP5 SWAP1 DUP3 SWAP1 PUSH2 0xE75 SWAP1 PUSH1 0x24 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0xE86 JUMPI POP RETURN JUMPDEST PUSH2 0xE8F SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x2DA JUMPI DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP POP REVERT JUMPDEST PUSH2 0xEAE SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0xEB9 JUMPI DUP2 DUP5 PUSH2 0xE33 JUMP JUMPDEST POP REVERT JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP8 PUSH8 0xDE0B6B3A7640000 PUSH2 0xEDD DUP9 DUP9 MUL DUP13 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x117D JUMPI PUSH8 0xDE0B6B3A7640000 DUP2 LT ISZERO PUSH2 0x115F JUMPI JUMPDEST PUSH1 0xB SWAP2 DUP3 SLOAD PUSH2 0xF2A PUSH2 0x669 PUSH2 0xF25 PUSH2 0xF1C PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x64 DUP2 DUP8 AND DIV AND PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x652 DUP8 PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x40A9 JUMP JUMPDEST SWAP1 DUP13 PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x10C7 JUMPI POP POP DUP13 PUSH2 0xF5C JUMPI JUMPDEST POP POP POP POP PUSH2 0xF57 SWAP1 JUMPDEST PUSH2 0xF52 DUP11 PUSH1 0x24 CALLDATALOAD CALLER PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x2D68 JUMP JUMPDEST PUSH2 0xDDC JUMP JUMPDEST SWAP2 PUSH1 0x20 SWAP2 PUSH2 0xF80 PUSH2 0xFB8 SWAP5 PUSH2 0xF78 PUSH5 0xE8D4A51000 SWAP4 DUP5 SWAP3 PUSH2 0x2D76 JUMP JUMPDEST DIV DUP1 SWAP4 PUSH2 0x2D83 JUMP JUMPDEST SWAP5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP4 DIV SWAP3 SWAP2 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x64 DUP3 ADD SWAP1 JUMP JUMPDEST SUB DUP2 DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND GAS CALL DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH2 0x1078 JUMPI JUMPDEST POP PUSH1 0xD SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 DUP1 PUSH1 0x64 DUP2 ADD JUMPDEST SUB DUP2 DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND GAS CALL DUP1 ISZERO PUSH2 0x106D JUMPI PUSH2 0x102C JUMPI JUMPDEST DUP1 DUP1 DUP1 PUSH2 0xF3C JUMP JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1065 JUMPI JUMPDEST DUP2 PUSH2 0x1045 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1061 JUMPI SWAP1 PUSH2 0x105A PUSH2 0xF57 SWAP3 PUSH2 0x29BB JUMP JUMPDEST POP SWAP1 PUSH2 0x1024 JUMP JUMPDEST DUP9 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1038 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP12 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x10B4 JUMPI JUMPDEST DUP2 PUSH2 0x1091 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x10B0 JUMPI PUSH2 0x100A SWAP2 PUSH2 0x10A8 PUSH1 0x20 SWAP3 PUSH2 0x29BB JUMP JUMPDEST POP SWAP2 POP PUSH2 0xFD2 JUMP JUMPDEST DUP10 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1084 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP13 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP4 SWAP3 PUSH2 0x10D8 SWAP2 SWAP6 POP PUSH2 0x10DF SWAP3 PUSH2 0x2D76 JUMP JUMPDEST DUP1 SWAP3 PUSH2 0x2D83 JUMP JUMPDEST SWAP3 DUP13 PUSH2 0x10F3 JUMPI JUMPDEST POP POP POP POP PUSH2 0xF57 SWAP1 PUSH2 0xF45 JUMP JUMPDEST DUP3 DUP1 SWAP3 DUP2 SWAP3 DUP3 SWAP1 DUP3 ISZERO PUSH2 0x1155 JUMPI JUMPDEST PUSH1 0x60 SHR SWAP1 CALL ISZERO PUSH2 0x114A JUMPI PUSH1 0xD SLOAD DUP10 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ISZERO PUSH2 0x1141 JUMPI JUMPDEST CALL ISZERO PUSH2 0x1136 JUMPI DUP10 DUP9 DUP2 DUP1 PUSH2 0x10E6 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP10 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP PUSH2 0x8FC PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP11 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x8FC SWAP2 POP PUSH2 0x1101 JUMP JUMPDEST SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x1176 DUP9 DUP9 MUL DUP6 PUSH2 0x27DB JUMP JUMPDEST DIV SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x118A SWAP1 DUP9 DUP7 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH8 0xDE0B6B3A7640000 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x1225 JUMPI PUSH8 0xDE0B6B3A7640000 DUP2 LT PUSH2 0xEF7 JUMPI SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x11D1 DUP9 DUP9 MUL DUP6 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH1 0x64 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH1 0x64 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x1225 JUMPI PUSH2 0x11F2 SWAP1 DUP9 DUP7 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH7 0x2386F26FC10000 SWAP1 DUP1 DUP3 DUP2 MUL DIV DUP3 EQ DUP2 ISZERO OR ISZERO PUSH2 0x1211 JUMPI MUL SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP12 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP12 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP11 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP11 REVERT JUMPDEST PUSH2 0x1255 SWAP2 POP RETURNDATASIZE DUP1 DUP11 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2A0A JUMP JUMPDEST DUP10 PUSH2 0xDD7 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1293 JUMPI JUMPDEST DUP2 PUSH2 0x1276 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x128F JUMPI DUP7 PUSH2 0x128A PUSH1 0x24 SWAP3 PUSH2 0x2996 JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST DUP7 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1269 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420656E6F7567687420455243323020746F207061790000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1315 JUMPI JUMPDEST DUP2 PUSH2 0x12FC PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1311 JUMPI MLOAD SWAP1 PUSH5 0xE8D4A51000 PUSH2 0xD58 JUMP JUMPDEST DUP8 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x12EF JUMP JUMPDEST PUSH2 0x132A SWAP1 DUP6 DUP4 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH8 0xDE0B6B3A7640000 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x138A JUMPI CALLVALUE LT ISZERO PUSH2 0xD67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x6E6F7420656E6F756768206D6F6E6579 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x12 SLOAD DUP2 LT ISZERO PUSH2 0x1442 JUMPI PUSH2 0x13C8 SWAP1 PUSH2 0x22D1 JUMP JUMPDEST POP PUSH1 0xFF PUSH1 0x40 MLOAD SWAP2 PUSH2 0x13D8 DUP4 PUSH2 0x2395 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP4 MSTORE PUSH1 0xA0 SHR AND ISZERO DUP1 ISZERO PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1406 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP4 PUSH2 0xCAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x10DC9E5C1D1BC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x10DC9E5C1D1BC81A59081A5B9D985B1A59 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH2 0x1484 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x504 JUMPI DUP2 DUP5 PUSH2 0xC9F JUMP JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x14D5 PUSH2 0x262F JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND SWAP1 SWAP2 SSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 DUP3 DUP1 LOG3 DUP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x153B PUSH2 0x2270 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x1558 JUMPI DUP2 PUSH1 0x40 SWAP2 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x5 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 PUSH1 0x4 CALLDATALOAD DUP4 DUP2 GT PUSH2 0xB89 JUMPI PUSH2 0x15A4 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST SWAP1 PUSH2 0x15AD PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND CALLER EQ DUP1 ISZERO PUSH2 0x182B JUMPI JUMPDEST PUSH2 0x15CF SWAP1 PUSH2 0x2912 JUMP JUMPDEST DUP2 PUSH1 0x11 SLOAD AND SWAP3 PUSH1 0x40 MLOAD SWAP2 PUSH4 0x3E30DCF9 PUSH1 0xE2 SHL DUP4 MSTORE DUP7 DUP4 PUSH1 0x20 SWAP7 DUP8 PUSH1 0x4 DUP4 ADD MSTORE DUP2 DUP1 PUSH2 0x15FD PUSH1 0x24 DUP3 ADD DUP13 PUSH2 0x224B JUMP JUMPDEST SUB SWAP2 GAS STATICCALL SWAP3 DUP4 ISZERO PUSH2 0x1136 JUMPI DUP8 SWAP4 PUSH2 0x1772 JUMPI JUMPDEST POP POP DUP2 ADD MLOAD ISZERO PUSH2 0x172D JUMPI PUSH1 0x60 DUP2 ADD MLOAD TIMESTAMP GT PUSH2 0x16F2 JUMPI PUSH1 0xA0 PUSH1 0x80 DUP3 ADD MLOAD SWAP2 ADD MLOAD PUSH2 0x1637 DUP2 PUSH2 0x347A JUMP JUMPDEST DUP7 JUMPDEST DUP4 DUP2 LT PUSH2 0x16DE JUMPI POP POP DUP6 SWAP7 POP DUP3 PUSH1 0x10 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x128F JUMPI PUSH1 0x44 DUP8 SWAP3 DUP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 ADD MSTORE PUSH1 0x24 DUP5 ADD MSTORE GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x16D3 JUMPI DUP6 SWAP2 PUSH2 0x16BF JUMPI JUMPDEST POP POP PUSH1 0x11 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x16BA JUMPI PUSH2 0xE75 SWAP3 DUP5 SWAP3 DUP4 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0x41B2819 PUSH1 0xE5 SHL DUP5 MSTORE PUSH1 0x4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST POP POP POP REVERT JUMPDEST PUSH2 0x16C8 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x16BA JUMPI DUP4 DUP7 PUSH2 0x1683 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x16ED SWAP1 PUSH2 0xF52 DUP4 DUP6 DUP13 PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x1639 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x14995CD95C9D985D1A5BDB88195E1C1A5C9959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207265736572766174696F6E206E756D626572000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 POP RETURNDATASIZE DUP1 DUP9 DUP4 RETURNDATACOPY PUSH2 0x1785 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 DUP6 DUP2 DUP4 SUB SLT PUSH2 0x1311 JUMPI DUP1 MLOAD SWAP1 DUP4 DUP3 GT PUSH2 0x1061 JUMPI ADD SWAP1 PUSH2 0x100 DUP3 DUP3 SUB SLT PUSH2 0x1311 JUMPI PUSH1 0x40 MLOAD SWAP3 PUSH2 0x17B5 DUP5 PUSH2 0x2379 JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 GT PUSH2 0x1061 JUMPI SWAP2 PUSH2 0x17CF DUP6 SWAP3 PUSH2 0x181F SWAP5 DUP4 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP5 MSTORE PUSH2 0x17DC DUP8 DUP3 ADD PUSH2 0x2996 JUMP JUMPDEST DUP8 DUP6 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x1814 PUSH1 0xC0 DUP3 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MSTORE ADD PUSH2 0x29BB JUMP JUMPDEST DUP3 DUP3 ADD MSTORE SWAP1 DUP8 DUP1 PUSH2 0x160F JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x15CF PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x15C6 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1877 PUSH2 0x2270 JUMP JUMPDEST SWAP1 PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 PUSH1 0x8 SLOAD AND CALLER EQ DUP1 ISZERO PUSH2 0x1903 JUMPI JUMPDEST PUSH2 0x189C SWAP1 PUSH2 0x2912 JUMP JUMPDEST PUSH2 0x18A5 DUP3 PUSH2 0x347A JUMP JUMPDEST DUP5 JUMPDEST DUP5 DUP2 LT PUSH2 0x18EF JUMPI POP POP DUP4 SWAP5 POP PUSH1 0x10 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x16BA JUMPI PUSH1 0x44 DUP5 SWAP3 DUP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 ADD MSTORE PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0xE86 JUMPI POP RETURN JUMPDEST PUSH2 0x18FE SWAP1 PUSH2 0xF52 DUP4 DUP7 DUP11 PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x18A7 JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x189C PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x1893 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x24 SWAP1 DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT PUSH2 0xB89 JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0xB89 JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP1 DUP2 GT PUSH2 0xB89 JUMPI CALLDATASIZE DUP5 DUP3 DUP5 ADD ADD GT PUSH2 0xB89 JUMPI PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1AA8 JUMPI JUMPDEST PUSH2 0x199B SWAP1 PUSH2 0x2912 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD DUP4 MSTORE PUSH1 0x20 SWAP4 PUSH1 0x15 DUP6 MSTORE PUSH1 0x40 DUP5 KECCAK256 SWAP3 PUSH2 0x19B6 DUP5 SLOAD PUSH2 0x231A JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x1A65 JUMPI JUMPDEST POP DUP5 SWAP6 PUSH1 0x1F DUP5 GT PUSH1 0x1 EQ PUSH2 0x19FE JUMPI POP SWAP5 DUP5 SWAP6 DUP4 SWAP5 SWAP6 SWAP4 PUSH2 0x19F1 JUMPI JUMPDEST POP POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR SWAP1 SSTORE DUP1 RETURN JUMPDEST ADD ADD CALLDATALOAD SWAP1 POP DUP5 DUP1 DUP1 PUSH2 0x19DA JUMP JUMPDEST SWAP2 PUSH1 0x1F NOT DUP5 AND SWAP7 DUP6 DUP8 MSTORE DUP4 DUP8 KECCAK256 SWAP4 DUP8 SWAP1 JUMPDEST DUP10 DUP3 LT PUSH2 0x1A4B JUMPI POP POP DUP5 PUSH1 0x1 SWAP7 SWAP8 SWAP9 LT PUSH2 0x1A30 JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH0 NOT PUSH1 0xF8 DUP7 PUSH1 0x3 SHL AND SHR NOT SWAP3 ADD ADD CALLDATALOAD AND SWAP1 SSTORE DUP5 DUP1 DUP1 DUP1 PUSH2 0x1A24 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP5 SWAP8 DUP7 DUP4 SWAP6 SWAP7 DUP10 ADD ADD CALLDATALOAD DUP2 SSTORE ADD SWAP7 ADD SWAP3 ADD SWAP1 PUSH2 0x1A0F JUMP JUMPDEST DUP5 DUP7 MSTORE DUP7 DUP7 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP9 DUP7 LT PUSH2 0x1A9E JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x1A93 JUMPI POP PUSH2 0x19BF JUMP JUMPDEST DUP7 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1A86 JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x1A7D JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x199B PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x1992 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x1AF9 PUSH1 0x4 CALLDATALOAD PUSH2 0x265B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x504 JUMPI PUSH2 0x1B3C SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST DUP2 PUSH1 0x24 CALLDATALOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x11 SLOAD AND CALLER DUP4 MSTORE PUSH1 0x17 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP5 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SLOAD SWAP2 DUP2 EXTCODESIZE ISZERO PUSH2 0x148F JUMPI DUP4 PUSH2 0x1B93 SWAP6 PUSH1 0x40 MLOAD SWAP7 DUP8 SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x758DDFDD PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x44 CALLDATALOAD SWAP2 CALLER SWAP1 PUSH1 0x4 DUP8 ADD PUSH2 0x295E JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0x1BA5 JUMPI POP DUP1 RETURN JUMPDEST PUSH2 0x5D4 SWAP1 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP CALLVALUE PUSH2 0x504 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x504 JUMPI PUSH1 0x40 PUSH2 0x100 SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0xFF DUP3 SLOAD SWAP3 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x2 DUP3 ADD SLOAD AND PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD SWAP2 PUSH1 0x6 PUSH1 0x5 DUP6 ADD SLOAD SWAP5 ADD SLOAD SWAP5 PUSH1 0x40 MLOAD SWAP9 DUP10 MSTORE PUSH1 0x20 DUP10 ADD MSTORE PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD MSTORE DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO SWAP1 DUP3 ADD MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x528 PUSH1 0x40 PUSH2 0x53C SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE KECCAK256 PUSH2 0x23EC JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH2 0x5D4 PUSH2 0x1C91 CALLDATASIZE PUSH2 0x229C JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x1C9F DUP5 PUSH2 0x23B0 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH2 0x5CF DUP4 DUP4 DUP4 PUSH2 0x3A98 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1CC6 PUSH2 0x262F JUMP JUMPDEST SELFBALANCE DUP1 ISZERO PUSH2 0x1D2C JUMPI PUSH1 0xC SLOAD DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH2 0x1CEB PUSH2 0x2695 JUMP JUMPDEST POP ISZERO PUSH2 0x1CF4 JUMPI DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x2A3930B739B332B9103330B4B632B217 PUSH1 0x81 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206574686572206C65667420746F20776974686472617700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1D8B PUSH2 0x2286 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1DA7 JUMPI PUSH2 0x455 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x455 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DD9 PUSH2 0x2286 JUMP JUMPDEST SWAP1 DUP1 DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH2 0x1DF2 PUSH1 0x1 PUSH1 0x40 DUP7 KECCAK256 ADD SLOAD PUSH2 0x24FC JUMP JUMPDEST PUSH2 0x253C JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x40 MLOAD SWAP1 PUSH2 0x1E24 DUP3 PUSH2 0x2395 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND DUP1 DUP5 MSTORE PUSH1 0xA0 SWAP3 SWAP1 SWAP3 SHR PUSH1 0x20 DUP5 ADD MSTORE SWAP2 SWAP3 SWAP1 ISZERO PUSH2 0x1E82 JUMPI JUMPDEST POP PUSH2 0x2710 PUSH2 0x1E64 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x20 DUP6 ADD MLOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x27DB JUMP JUMPDEST SWAP3 MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DIV PUSH1 0x20 DUP3 ADD MSTORE RETURN JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH2 0x1E91 DUP3 PUSH2 0x2395 JUMP JUMPDEST SLOAD DUP3 DUP2 AND DUP3 MSTORE PUSH1 0xA0 SHR PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP3 PUSH2 0x1E47 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x12 SLOAD DUP3 LT ISZERO PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH2 0x1ED1 DUP4 PUSH2 0x22D1 JUMP JUMPDEST POP SLOAD DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH1 0xA0 SWAP2 SWAP1 SWAP2 SHR PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x40 PUSH1 0x20 SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x9 DUP5 MSTORE KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH2 0x5D4 PUSH2 0x1F5C CALLDATASIZE PUSH2 0x229C JUMP JUMPDEST SWAP2 PUSH2 0x3A98 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1F98 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x1FA4 DUP2 PUSH2 0x265B JUMP JUMPDEST CALLER ISZERO ISZERO DUP1 PUSH2 0x204E JUMPI JUMPDEST DUP1 PUSH2 0x2023 JUMPI JUMPDEST PUSH2 0x200B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 DUP3 SWAP2 DUP5 SWAP2 AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP7 DUP1 LOG4 DUP3 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP7 KECCAK256 CALLER DUP8 MSTORE SWAP1 SWAP2 MSTORE DUP5 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO PUSH2 0x1FAD JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x2082 DUP2 PUSH2 0x265B JUMP JUMPDEST POP DUP2 MSTORE PUSH1 0x6 DUP3 MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP2 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x2 SLOAD PUSH2 0x20C0 DUP2 PUSH2 0x231A JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0x2145 JUMPI POP PUSH1 0x1 EQ PUSH2 0x20EA JUMPI JUMPDEST PUSH2 0x53C DUP6 PUSH2 0x528 DUP2 DUP8 SUB DUP3 PUSH2 0x23CB JUMP JUMPDEST SWAP3 POP PUSH1 0x2 DUP4 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE JUMPDEST DUP3 DUP5 LT PUSH2 0x212D JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x528 DUP3 PUSH2 0x53C PUSH2 0x20DA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x2112 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x53C SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x528 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x20DA JUMP JUMPDEST DUP4 SWAP1 CALLVALUE PUSH2 0x504 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x504 JUMPI PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 AND DUP1 SWAP2 SUB PUSH2 0xB89 JUMPI PUSH1 0x20 SWAP3 POP PUSH4 0x152A902D PUSH1 0xE1 SHL DUP2 EQ DUP1 ISZERO DUP1 PUSH2 0x21B4 JUMPI JUMPDEST POP ISZERO ISZERO DUP3 MSTORE POP RETURN JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP4 EQ SWAP3 DUP4 ISZERO PUSH2 0x21D0 JUMPI JUMPDEST POP POP POP DUP1 DUP5 PUSH2 0x21AC JUMP JUMPDEST PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP4 POP SWAP1 SWAP2 DUP4 ISZERO PUSH2 0x2219 JUMPI JUMPDEST DUP4 ISZERO PUSH2 0x21F7 JUMPI JUMPDEST POP POP POP DUP4 DUP1 DUP1 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP SWAP1 PUSH2 0x2208 JUMPI JUMPDEST POP DUP4 DUP1 DUP1 PUSH2 0x21EC JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x21FF JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP3 EQ SWAP4 POP PUSH2 0x21E5 JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT PUSH2 0x223B JUMPI POP POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x222C JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x2264 DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 SLOAD DUP2 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x12 PUSH0 MSTORE PUSH32 0xBB8A6A4669BA250D26CD7A459ECA9D215F8307E33AEBE50379BC5A3617EC3444 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x2348 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x2334 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x2329 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x100 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH0 DUP3 SLOAD SWAP3 PUSH2 0x23FF DUP5 PUSH2 0x231A JUMP JUMPDEST SWAP1 DUP2 DUP5 MSTORE PUSH1 0x1 SWAP5 DUP6 DUP2 AND SWAP1 DUP2 PUSH0 EQ PUSH2 0x246A JUMPI POP PUSH1 0x1 EQ PUSH2 0x242A JUMPI JUMPDEST POP POP PUSH2 0x2428 SWAP3 POP SUB DUP4 PUSH2 0x23CB JUMP JUMPDEST JUMP JUMPDEST SWAP1 SWAP4 SWAP2 POP PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 PUSH0 KECCAK256 SWAP4 PUSH0 SWAP2 JUMPDEST DUP2 DUP4 LT PUSH2 0x2452 JUMPI POP POP PUSH2 0x2428 SWAP4 POP DUP3 ADD ADD PUSH0 DUP1 PUSH2 0x241A JUMP JUMPDEST DUP6 SLOAD DUP9 DUP5 ADD DUP6 ADD MSTORE SWAP5 DUP6 ADD SWAP5 DUP8 SWAP5 POP SWAP2 DUP4 ADD SWAP2 PUSH2 0x243A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2428 SWAP5 POP PUSH1 0x20 SWAP3 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD PUSH0 DUP1 PUSH2 0x241A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP3 PUSH2 0x24B4 DUP3 PUSH2 0x248D JUMP JUMPDEST SWAP2 PUSH2 0x24C2 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x23CB JUMP JUMPDEST DUP3 SWAP5 DUP2 DUP5 MSTORE DUP2 DUP4 ADD GT PUSH2 0x71A JUMPI DUP3 DUP2 PUSH1 0x20 SWAP4 DUP5 PUSH0 SWAP7 ADD CALLDATACOPY ADD ADD MSTORE JUMP JUMPDEST SWAP1 DUP1 PUSH1 0x1F DUP4 ADD SLT ISZERO PUSH2 0x71A JUMPI DUP2 PUSH1 0x20 PUSH2 0x24F9 SWAP4 CALLDATALOAD SWAP2 ADD PUSH2 0x24A8 JUMP JUMPDEST SWAP1 JUMP JUMPDEST DUP1 PUSH0 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND ISZERO PUSH2 0x251E JUMPI POP JUMP JUMPDEST PUSH1 0x44 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP3 MSTORE CALLER PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE REVERT JUMPDEST SWAP1 PUSH0 SWAP2 DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP5 KECCAK256 SLOAD AND ISZERO PUSH0 EQ PUSH2 0x25B5 JUMPI DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D CALLER SWAP4 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST SWAP1 PUSH0 SWAP2 DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP5 KECCAK256 SLOAD AND PUSH0 EQ PUSH2 0x25B5 JUMPI DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0xFF NOT DUP2 SLOAD AND SWAP1 SSTORE PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B CALLER SWAP4 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x2643 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x267D JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x24 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 DUP3 ADD MSTORE REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x26BF JUMPI RETURNDATASIZE SWAP1 PUSH2 0x26A6 DUP3 PUSH2 0x248D JUMP JUMPDEST SWAP2 PUSH2 0x26B4 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x23CB JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP1 EXTCODESIZE PUSH2 0x26D3 JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2715 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 SWAP3 AND SWAP5 PUSH1 0x40 MLOAD SWAP4 DUP5 SWAP4 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP7 DUP8 DUP7 MSTORE CALLER PUSH1 0x4 DUP8 ADD MSTORE AND PUSH1 0x24 DUP6 ADD MSTORE PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x80 PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP1 PUSH1 0x20 DUP2 PUSH0 SWAP4 DUP2 DUP6 DUP9 GAS CALL SWAP1 DUP3 SWAP1 DUP3 PUSH2 0x2793 JUMPI JUMPDEST POP POP PUSH2 0x2762 JUMPI DUP3 PUSH2 0x2739 PUSH2 0x2695 JUMP JUMPDEST DUP1 MLOAD SWAP2 SWAP1 DUP3 PUSH2 0x275B JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SUB PUSH2 0x277B JUMPI POP PUSH0 DUP1 DUP1 DUP1 PUSH2 0x26CD JUMP JUMPDEST PUSH1 0x24 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0x32505749 PUSH1 0xE1 SHL DUP3 MSTORE PUSH1 0x4 DUP3 ADD MSTORE REVERT JUMPDEST SWAP1 SWAP2 SWAP3 POP PUSH1 0x20 DUP2 RETURNDATASIZE DUP3 GT PUSH2 0x27D3 JUMPI JUMPDEST DUP2 PUSH2 0x27AF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x504 JUMPI MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND DUP3 SUB PUSH2 0x2DA JUMPI POP SWAP1 PUSH0 DUP1 PUSH2 0x272A JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27A2 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x27EE JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x280C JUMPI DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST MLOAD SWAP1 PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST SWAP1 DUP2 PUSH1 0xA0 SWAP2 SUB SLT PUSH2 0x71A JUMPI PUSH2 0x284B DUP2 PUSH2 0x2820 JUMP JUMPDEST SWAP2 PUSH1 0x20 DUP3 ADD MLOAD SWAP2 PUSH1 0x40 DUP2 ADD MLOAD SWAP2 PUSH2 0x24F9 PUSH1 0x80 PUSH1 0x60 DUP5 ADD MLOAD SWAP4 ADD PUSH2 0x2820 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x3FABE5A3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 PUSH1 0xA0 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x28A0 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x28C1 SWAP2 POP PUSH1 0xA0 RETURNDATASIZE DUP2 GT PUSH2 0x28C9 JUMPI JUMPDEST PUSH2 0x28B9 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2837 JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x28AF JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x3FABE5A3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 PUSH1 0xA0 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x28A0 JUMPI POP SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2919 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C792061646D696E732063616E20646F2074686174000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP2 SWAP6 SWAP5 SWAP4 SWAP1 SWAP3 PUSH2 0x2978 PUSH1 0x80 SWAP5 PUSH1 0xA0 DUP6 MSTORE PUSH1 0xA0 DUP6 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP8 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST MLOAD SWAP1 DUP2 ISZERO ISZERO DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x71A JUMPI DUP1 MLOAD PUSH2 0x29DE DUP2 PUSH2 0x248D JUMP JUMPDEST SWAP3 PUSH2 0x29EC PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x23CB JUMP JUMPDEST DUP2 DUP5 MSTORE PUSH1 0x20 DUP3 DUP5 ADD ADD GT PUSH2 0x71A JUMPI PUSH2 0x24F9 SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x71A JUMPI ADD PUSH2 0x2C0 SWAP3 DUP4 DUP3 DUP5 SUB SLT PUSH2 0x71A JUMPI PUSH1 0x40 DUP1 MLOAD SWAP5 DUP6 ADD DUP6 DUP2 LT DUP4 DUP3 GT OR PUSH2 0x2365 JUMPI DUP2 MSTORE DUP3 MLOAD DUP6 MSTORE PUSH2 0x2A59 PUSH1 0x20 DUP5 ADD PUSH2 0x29AA JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2A69 DUP2 DUP5 ADD PUSH2 0x29AA JUMP JUMPDEST DUP2 DUP7 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x2A97 PUSH1 0xC0 DUP5 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x100 SWAP4 PUSH2 0x2AB5 DUP6 DUP6 ADD PUSH2 0x29BB JUMP JUMPDEST DUP6 DUP8 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 DUP6 ADD MLOAD DUP5 DUP9 ADD MSTORE PUSH2 0x140 DUP1 DUP7 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH2 0x160 PUSH2 0x2ADE DUP2 DUP9 ADD PUSH2 0x29BB JUMP JUMPDEST DUP2 DUP11 ADD MSTORE PUSH2 0x180 SWAP1 DUP2 DUP9 ADD MLOAD DUP3 DUP12 ADD MSTORE PUSH2 0x1A0 SWAP3 DUP4 DUP10 ADD MLOAD DUP5 DUP13 ADD MSTORE PUSH2 0x1C0 SWAP8 DUP9 DUP11 ADD MLOAD DUP10 DUP14 ADD MSTORE PUSH2 0x1E0 SWAP11 DUP13 DUP13 DUP1 DUP14 ADD MLOAD SWAP2 ADD MSTORE DUP13 DUP12 PUSH2 0x2B23 PUSH2 0x200 DUP1 SWAP3 ADD PUSH2 0x29BB JUMP JUMPDEST SWAP2 ADD MSTORE DUP13 PUSH2 0x220 PUSH2 0x2B35 DUP2 DUP15 ADD PUSH2 0x29BB JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x240 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B55 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x260 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B75 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x280 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B95 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x2A0 SWAP11 DUP12 DUP2 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI ADD SWAP9 DUP13 DUP11 DUP11 SUB SLT PUSH2 0x71A JUMPI DUP1 MLOAD SWAP13 DUP14 ADD DUP14 DUP2 LT DUP10 DUP3 GT OR PUSH2 0x2365 JUMPI DUP2 MSTORE DUP10 MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI DUP10 PUSH2 0x2BDA SWAP2 DUP13 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP14 MSTORE PUSH1 0x20 DUP11 ADD MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI PUSH1 0x20 PUSH2 0x2BF8 DUP16 SWAP3 DUP13 SWAP1 DUP15 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE DUP1 DUP11 ADD MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI DUP10 PUSH2 0x2C12 SWAP2 DUP13 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP14 ADD MSTORE PUSH1 0x60 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C2E SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x60 DUP14 ADD MSTORE PUSH1 0x80 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C4B SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x80 DUP14 ADD MSTORE PUSH1 0xA0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C68 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xA0 DUP14 ADD MSTORE PUSH1 0xC0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C85 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xC0 DUP14 ADD MSTORE PUSH1 0xE0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2CA2 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xE0 DUP14 ADD MSTORE DUP1 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2CBE SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP13 ADD MSTORE DUP1 DUP9 ADD MLOAD DUP7 DUP2 GT PUSH2 0x71A JUMPI DUP8 PUSH2 0x2CD9 SWAP2 DUP11 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP12 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP6 DUP2 GT PUSH2 0x71A JUMPI DUP7 PUSH2 0x2CF4 SWAP2 DUP10 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP11 ADD MSTORE DUP1 DUP7 ADD MLOAD DUP5 DUP2 GT PUSH2 0x71A JUMPI DUP6 PUSH2 0x2D0F SWAP2 DUP9 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP10 ADD MSTORE DUP1 DUP6 ADD MLOAD DUP4 DUP2 GT PUSH2 0x71A JUMPI DUP5 PUSH2 0x2D2A SWAP2 DUP8 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP9 ADD MSTORE DUP1 DUP5 ADD MLOAD DUP3 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2D45 SWAP2 DUP7 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP8 ADD MSTORE DUP4 DUP4 ADD MLOAD SWAP1 DUP2 GT PUSH2 0x71A JUMPI PUSH2 0x2D5E SWAP3 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP4 ADD MSTORE DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH0 NOT DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x27EE JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x27EE JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x71A JUMPI ADD PUSH2 0x100 DUP2 DUP4 SUB SLT PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD SWAP3 PUSH2 0x2DC6 DUP5 PUSH2 0x2379 JUMP JUMPDEST DUP2 MLOAD DUP2 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2DDB SWAP2 DUP5 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x71A JUMPI PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2E1C SWAP2 DUP5 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP3 ADD MLOAD SWAP1 DUP2 GT PUSH2 0x71A JUMPI PUSH1 0xE0 SWAP3 PUSH2 0x2E3B SWAP2 DUP4 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2E4C PUSH1 0xC0 DUP3 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MSTORE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST SWAP1 SWAP2 PUSH1 0xA SLOAD PUSH0 PUSH1 0x40 SWAP3 DUP4 MLOAD SWAP2 PUSH2 0x2E80 DUP4 PUSH2 0x23B0 JUMP JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP7 DUP8 ISZERO PUSH2 0x32FC JUMPI DUP6 DUP4 MSTORE PUSH1 0x4 SWAP4 PUSH1 0x20 SWAP6 DUP6 DUP8 MSTORE DUP4 DUP10 DUP7 KECCAK256 SLOAD AND SWAP3 DUP4 ISZERO ISZERO DUP1 PUSH2 0x32CB JUMPI JUMPDEST DUP12 DUP8 MSTORE PUSH1 0x5 DUP10 MSTORE DUP11 DUP8 KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD SWAP1 SSTORE DUP10 DUP8 MSTORE DUP8 DUP10 MSTORE DUP10 DUP13 DUP13 DUP10 KECCAK256 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL SWAP8 DUP3 DUP10 DUP3 SLOAD AND OR SWAP1 SSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP11 DUP1 LOG4 PUSH2 0x32B4 JUMPI EXTCODESIZE PUSH2 0x31BD JUMPI JUMPDEST POP DUP5 DUP5 DUP5 PUSH1 0x10 SLOAD AND DUP11 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0x5FC0CE1 PUSH1 0xE5 SHL DUP3 MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x31B3 JUMPI PUSH2 0x2FCE DUP13 DUP12 PUSH2 0x2FBE PUSH1 0x22 DUP14 PUSH2 0x2F5B PUSH2 0x2F55 DUP16 SWAP10 DUP15 SWAP10 DUP11 SWAP2 PUSH2 0x3191 JUMPI JUMPDEST POP MLOAD SWAP7 PUSH2 0x3314 JUMP JUMPDEST SWAP2 PUSH2 0x3314 JUMP JUMPDEST SWAP4 MLOAD SWAP4 DUP5 SWAP2 DUP10 PUSH2 0x2F74 DUP2 DUP6 ADD SWAP9 DUP10 DUP2 MLOAD SWAP4 DUP5 SWAP3 ADD PUSH2 0x222A JUMP JUMPDEST DUP4 ADD SWAP1 PUSH1 0x1D PUSH1 0xF9 SHL SWAP2 DUP3 DUP13 DUP3 ADD MSTORE PUSH2 0x2F96 DUP13 DUP4 MLOAD SWAP4 DUP5 SWAP2 PUSH1 0x21 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST ADD SWAP1 PUSH1 0x21 DUP3 ADD MSTORE PUSH2 0x2FAF DUP3 MLOAD DUP1 SWAP4 DUP13 DUP8 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST ADD SUB PUSH1 0x2 DUP2 ADD DUP5 MSTORE ADD DUP3 PUSH2 0x23CB JUMP JUMPDEST DUP13 MLOAD SWAP3 DUP4 SWAP3 DUP4 SWAP3 MLOAD SWAP3 DUP4 SWAP2 PUSH2 0x222A JUMP JUMPDEST DUP2 ADD SUB SWAP1 PUSH1 0x2 GAS STATICCALL ISZERO PUSH2 0x3187 JUMPI DUP8 SWAP2 DUP11 DUP9 SWAP3 DUP7 MLOAD DUP13 DUP7 MLOAD SWAP5 PUSH2 0x2FEF DUP7 PUSH2 0x2379 JUMP JUMPDEST DUP7 DUP7 MSTORE DUP12 DUP7 ADD SWAP5 DUP6 MSTORE DUP8 DUP7 ADD SWAP2 DUP3 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 DUP4 MSTORE PUSH1 0x80 DUP7 ADD SWAP4 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP5 TIMESTAMP DUP7 MSTORE PUSH1 0xC0 DUP8 ADD SWAP9 DUP12 DUP11 MSTORE DUP14 PUSH1 0xE0 DUP10 ADD SWAP10 PUSH1 0x1 DUP12 MSTORE DUP14 MSTORE PUSH1 0x14 SWAP1 MSTORE DUP12 KECCAK256 SWAP7 MLOAD DUP8 SSTORE MLOAD PUSH1 0x1 DUP8 ADD SSTORE DUP9 PUSH1 0x2 DUP8 ADD SWAP3 MLOAD AND SWAP1 DUP3 SLOAD AND OR SWAP1 SSTORE MLOAD PUSH1 0x3 DUP5 ADD SSTORE MLOAD DUP8 DUP4 ADD SSTORE MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 ADD SWAP2 MLOAD ISZERO ISZERO PUSH2 0x3075 SWAP1 DUP4 SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD ISZERO ISZERO DUP2 SLOAD SWAP1 PUSH1 0x8 SHL PUSH2 0xFF00 AND SWAP1 PUSH2 0xFF00 NOT AND OR SWAP1 SSTORE PUSH1 0x10 SLOAD AND DUP1 EXTCODESIZE ISZERO PUSH2 0x504 JUMPI DUP2 DUP1 SWAP2 PUSH1 0x44 DUP9 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0xB382AED PUSH1 0xE4 SHL DUP4 MSTORE DUP14 DUP10 DUP5 ADD MSTORE DUP11 PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x317D JUMPI PUSH2 0x316E JUMPI JUMPDEST POP DUP4 DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE DUP7 DUP6 DUP3 KECCAK256 SSTORE DUP6 DUP2 MSTORE PUSH1 0x17 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP8 DUP3 MSTORE DUP4 MSTORE DUP5 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x315B JUMPI DUP7 DUP3 MSTORE PUSH1 0x17 DUP5 MSTORE DUP6 DUP3 KECCAK256 DUP9 DUP4 MSTORE DUP5 MSTORE DUP6 DUP3 KECCAK256 SSTORE PUSH1 0xA SLOAD SWAP2 PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x3148 JUMPI POP POP PUSH1 0xA SSTORE DUP3 MLOAD SWAP5 DUP6 MSTORE DUP5 ADD MSTORE DUP3 ADD MSTORE PUSH32 0x756915DC79FBE0544CDE2132B389579561B584214B5BA2644E80D0BBB565047C SWAP1 PUSH1 0x60 SWAP1 LOG1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP PUSH1 0x11 PUSH1 0x24 SWAP3 PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE MSTORE REVERT JUMPDEST PUSH2 0x3177 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH0 PUSH2 0x30C3 JUMP JUMPDEST DUP7 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP8 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x31AD SWAP2 POP RETURNDATASIZE DUP1 DUP13 DUP4 RETURNDATACOPY PUSH2 0x31A5 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2D90 JUMP JUMPDEST PUSH0 PUSH2 0x2F4D JUMP JUMPDEST DUP10 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP5 PUSH2 0x3200 DUP8 DUP10 SWAP8 DUP13 DUP5 SWAP15 SWAP11 SWAP16 SWAP12 DUP10 DUP15 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER SWAP1 DUP6 ADD MSTORE DUP5 PUSH1 0x24 DUP6 ADD MSTORE PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x80 PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP3 GAS CALL DUP7 SWAP2 DUP2 PUSH2 0x3274 JUMPI JUMPDEST POP PUSH2 0x3242 JUMPI DUP13 DUP13 DUP13 DUP13 PUSH2 0x321D PUSH2 0x2695 JUMP JUMPDEST DUP1 MLOAD SWAP5 DUP6 PUSH2 0x323C JUMPI POP POP MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH1 0x24 SWAP2 POP REVERT JUMPDEST DUP6 SWAP3 POP ADD REVERT JUMPDEST SWAP8 SWAP12 SWAP7 SWAP11 SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SUB PUSH2 0x325D JUMPI PUSH0 PUSH2 0x2F10 JUMP JUMPDEST DUP8 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP7 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 POP DUP14 DUP2 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x32AD JUMPI JUMPDEST PUSH2 0x328C DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x128F JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x128F JUMPI SWAP1 PUSH0 PUSH2 0x320C JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3282 JUMP JUMPDEST DUP10 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP9 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP11 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP8 MSTORE PUSH1 0x5 DUP10 MSTORE DUP11 DUP8 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE PUSH2 0x2EB1 JUMP JUMPDEST DUP7 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 PUSH0 SWAP2 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP1 DUP3 LT ISZERO PUSH2 0x346C JUMPI JUMPDEST POP PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP1 DUP4 LT ISZERO PUSH2 0x345D JUMPI JUMPDEST POP PUSH7 0x2386F26FC10000 DUP1 DUP4 LT ISZERO PUSH2 0x344E JUMPI JUMPDEST POP PUSH4 0x5F5E100 DUP1 DUP4 LT ISZERO PUSH2 0x343F JUMPI JUMPDEST POP PUSH2 0x2710 DUP1 DUP4 LT ISZERO PUSH2 0x3430 JUMPI JUMPDEST POP PUSH1 0x64 DUP3 LT ISZERO PUSH2 0x3420 JUMPI JUMPDEST PUSH1 0xA DUP1 SWAP3 LT ISZERO PUSH2 0x3416 JUMPI JUMPDEST PUSH1 0x1 SWAP1 DUP2 PUSH1 0x21 DUP2 DUP7 ADD SWAP6 PUSH2 0x33AC DUP8 PUSH2 0x248D JUMP JUMPDEST SWAP7 PUSH2 0x33BA PUSH1 0x40 MLOAD SWAP9 DUP10 PUSH2 0x23CB JUMP JUMPDEST DUP1 DUP9 MSTORE PUSH2 0x33C9 PUSH1 0x1F NOT SWAP2 PUSH2 0x248D JUMP JUMPDEST ADD CALLDATASIZE PUSH1 0x20 DUP10 ADD CALLDATACOPY DUP7 ADD ADD SWAP1 JUMPDEST PUSH2 0x33E1 JUMPI JUMPDEST POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 NOT ADD SWAP1 DUP4 SWAP1 PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP3 DUP3 MOD BYTE DUP4 MSTORE8 DIV SWAP2 DUP3 ISZERO PUSH2 0x3411 JUMPI SWAP2 SWAP1 DUP3 PUSH2 0x33D5 JUMP JUMPDEST PUSH2 0x33DA JUMP JUMPDEST SWAP2 PUSH1 0x1 ADD SWAP2 PUSH2 0x3399 JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x64 PUSH1 0x2 SWAP2 DIV SWAP2 ADD SWAP2 PUSH2 0x338E JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3383 JUMP JUMPDEST PUSH1 0x8 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3376 JUMP JUMPDEST PUSH1 0x10 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x20 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3355 JUMP JUMPDEST PUSH1 0x40 SWAP4 POP DUP2 DIV SWAP2 POP PUSH0 PUSH2 0x333C JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 DUP8 AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x3525 JUMPI JUMPDEST POP PUSH1 0x24 PUSH0 SWAP3 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 DUP5 SWAP3 PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP5 MSTORE PUSH1 0x4 DUP5 ADD MSTORE AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x350C JUMPI JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD SWAP1 PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x34F2 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x1A0 DUP2 ADD MLOAD TIMESTAMP LT PUSH2 0x3502 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x180 SWAP2 POP ADD MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x351F SWAP2 RETURNDATASIZE DUP1 SWAP2 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x34DD JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 RETURNDATASIZE DUP3 GT PUSH2 0x355C JUMPI JUMPDEST DUP2 PUSH2 0x353E PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x2DA JUMPI POP SWAP1 PUSH1 0x24 PUSH2 0x3554 PUSH0 SWAP4 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP3 POP PUSH2 0x34B0 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x3531 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3A10 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x3598 DUP2 PUSH2 0x2379 JUMP JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0xE0 PUSH1 0xFF PUSH1 0x6 PUSH1 0x1 DUP6 ADD SLOAD SWAP5 PUSH1 0x20 DUP6 ADD SWAP6 DUP7 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x2 DUP3 ADD SLOAD AND PUSH1 0x40 DUP7 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE ADD SLOAD DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO SWAP2 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x10 SLOAD AND SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x20 DUP3 PUSH1 0x4 DUP2 DUP7 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP3 PUSH2 0x39D3 JUMPI JUMPDEST POP MLOAD PUSH1 0x40 MLOAD PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x24 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x39B9 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 PUSH1 0xC0 DUP2 ADD MLOAD ISZERO PUSH2 0x399B JUMPI JUMPDEST DUP4 PUSH0 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH2 0x3683 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH2 0x231A JUMP JUMPDEST ISZERO PUSH2 0x369E JUMPI POP POP POP PUSH0 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH2 0x24F9 PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x23EC JUMP JUMPDEST PUSH2 0x1C0 DUP2 SWAP5 SWAP3 SWAP4 SWAP5 ADD MLOAD SWAP4 PUSH1 0x4 PUSH0 PUSH2 0x260 DUP5 ADD MLOAD SWAP3 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0x5FC0CE1 PUSH1 0xE5 SHL DUP3 MSTORE GAS STATICCALL DUP1 ISZERO PUSH2 0x28D0 JUMPI PUSH1 0x20 SWAP2 PUSH0 SWAP2 PUSH2 0x3981 JUMPI JUMPDEST POP ADD MLOAD PUSH2 0x2A0 DUP4 ADD MLOAD SWAP1 PUSH2 0x200 DUP5 ADD MLOAD ISZERO ISZERO SWAP3 PUSH2 0x220 DUP6 ADD MLOAD ISZERO ISZERO SWAP5 PUSH2 0x100 ADD MLOAD ISZERO ISZERO SWAP6 PUSH1 0x40 MLOAD SWAP9 PUSH2 0x3707 DUP11 PUSH2 0x2379 JUMP JUMPDEST DUP10 MSTORE PUSH1 0x20 DUP10 ADD MSTORE PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 SWAP1 SUB PUSH1 0x13 SLOAD AND SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP4 DUP2 SWAP3 PUSH4 0x3605E0D PUSH1 0xE5 SHL DUP4 MSTORE ADDRESS PUSH1 0x4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD PUSH1 0x60 SWAP1 MSTORE DUP2 MLOAD PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x84 DUP5 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0xA4 DUP5 ADD PUSH2 0x100 SWAP1 MSTORE PUSH2 0x164 DUP5 ADD PUSH2 0x3786 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC4 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x63 NOT DUP6 DUP4 SUB ADD PUSH1 0xE4 DUP7 ADD MSTORE DUP1 MLOAD PUSH2 0x1E0 DUP1 DUP5 MSTORE DUP4 ADD PUSH2 0x37B4 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE PUSH2 0x37CB SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x37E2 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x37F9 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x3810 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x3827 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x383E SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x3855 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x386E SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x120 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x3887 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x140 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38A0 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x160 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38B9 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x180 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38D2 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x1A0 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38EB SWAP2 PUSH2 0x224B JUMP JUMPDEST SWAP1 PUSH2 0x1C0 ADD MLOAD SWAP2 DUP1 DUP3 SUB SWAP1 PUSH2 0x1C0 ADD MSTORE PUSH2 0x3904 SWAP2 PUSH2 0x224B JUMP JUMPDEST SWAP2 PUSH1 0xA0 DUP2 ADD MLOAD ISZERO ISZERO PUSH2 0x104 DUP6 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD ISZERO ISZERO PUSH2 0x124 DUP6 ADD MSTORE PUSH1 0xE0 ADD MLOAD ISZERO ISZERO PUSH2 0x144 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x44 DUP4 ADD MSTORE SUB DUP2 GAS SWAP4 PUSH0 SWAP5 STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x394A JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x395B DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x71A JUMPI PUSH2 0x24F9 SWAP3 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH2 0x3995 SWAP2 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x31A5 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x36D6 JUMP JUMPDEST SWAP1 POP PUSH1 0xE0 DUP2 ADD MLOAD TIMESTAMP GT PUSH0 EQ PUSH2 0x39B2 JUMPI PUSH1 0x1 SWAP1 PUSH2 0x366E JUMP JUMPDEST PUSH0 SWAP1 PUSH2 0x366E JUMP JUMPDEST PUSH2 0x39CD SWAP2 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x365F JUMP JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x3A08 JUMPI JUMPDEST DUP2 PUSH2 0x39EF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x71A JUMPI PUSH2 0x3A01 PUSH0 SWAP2 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x3625 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x39E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST SWAP1 SWAP3 SWAP2 SWAP3 PUSH0 SWAP4 DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 SWAP2 PUSH1 0x14 DUP3 MSTORE PUSH1 0x40 DUP1 DUP9 KECCAK256 SWAP5 PUSH1 0x16 DUP5 MSTORE DUP2 DUP10 KECCAK256 SLOAD SWAP1 DUP10 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 PUSH1 0x10 SLOAD AND SWAP1 DUP6 MLOAD SWAP9 DUP10 DUP1 SWAP4 PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 SWAP12 DUP13 SWAP2 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x3D7E JUMPI SWAP1 DUP4 SWAP3 SWAP2 DUP7 SWAP5 SWAP3 PUSH2 0x3D43 JUMPI JUMPDEST POP PUSH1 0x24 SWAP1 DUP8 MLOAD SWAP5 DUP6 SWAP4 DUP5 SWAP3 PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP5 MSTORE DUP14 DUP5 ADD MSTORE AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x3D39 JUMPI SWAP1 DUP4 SWAP3 SWAP2 DUP13 SWAP2 PUSH2 0x3D1F JUMPI JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP13 MSTORE PUSH1 0x9 DUP8 MSTORE DUP5 DUP13 KECCAK256 CALLER DUP14 MSTORE DUP8 MSTORE PUSH1 0xFF DUP6 DUP14 KECCAK256 SLOAD AND ISZERO PUSH2 0x3CD8 JUMPI JUMPDEST POP AND SWAP7 DUP8 ISZERO PUSH2 0x3CC1 JUMPI DUP4 DUP11 MSTORE DUP6 DUP6 MSTORE DUP2 DUP4 DUP12 KECCAK256 SLOAD AND SWAP5 CALLER ISZERO ISZERO DUP1 PUSH2 0x3C2F JUMPI JUMPDEST POP DUP9 DUP7 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP3 SWAP13 SWAP14 DUP11 DUP10 SWAP6 DUP5 PUSH2 0x3BFE JUMPI JUMPDEST DUP6 DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP10 DUP4 KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD SWAP1 SSTORE DUP7 DUP4 MSTORE MSTORE DUP8 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL SWAP15 DUP16 DUP3 SLOAD AND OR SWAP1 SSTORE DUP1 LOG4 AND SWAP1 DUP2 DUP5 SUB PUSH2 0x3BDF JUMPI POP POP POP POP POP PUSH1 0x2 ADD SWAP2 DUP3 SLOAD AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE SWAP4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP2 POP REVERT JUMPDEST PUSH0 DUP8 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP10 DUP4 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE PUSH2 0x3B98 JUMP JUMPDEST DUP1 PUSH2 0x3C80 JUMPI JUMPDEST ISZERO PUSH2 0x3C40 JUMPI PUSH0 PUSH2 0x3B68 JUMP JUMPDEST DUP5 DUP8 DUP6 DUP9 PUSH2 0x3C5D JUMPI SWAP2 PUSH1 0x24 SWAP3 MLOAD SWAP2 PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP4 MSTORE DUP3 ADD MSTORE REVERT JUMPDEST MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP2 DUP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 SWAP1 PUSH1 0x40 ADD SUB SWAP1 REVERT JUMPDEST POP CALLER DUP7 EQ DUP1 ISZERO PUSH2 0x3CA5 JUMPI JUMPDEST DUP1 PUSH2 0x3C35 JUMPI POP DUP5 DUP12 MSTORE PUSH1 0x6 DUP2 MSTORE CALLER DUP4 DUP6 DUP14 KECCAK256 SLOAD AND EQ PUSH2 0x3C35 JUMP JUMPDEST POP DUP6 DUP12 MSTORE PUSH1 0x7 DUP2 MSTORE DUP4 DUP12 KECCAK256 CALLER DUP13 MSTORE DUP2 MSTORE PUSH1 0xFF DUP5 DUP13 KECCAK256 SLOAD AND PUSH2 0x3C8B JUMP JUMPDEST DUP3 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP8 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH2 0x100 SWAP2 SWAP3 POP ADD MLOAD ISZERO PUSH2 0x3CED JUMPI DUP2 SWAP1 PUSH0 PUSH2 0x3B49 JUMP JUMPDEST DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 DUP8 ADD DUP7 SWAP1 MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6E6F742073656C6C61626C65 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH2 0x3D33 SWAP2 POP RETURNDATASIZE DUP1 DUP15 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x3B1F JUMP JUMPDEST DUP5 MLOAD RETURNDATASIZE DUP14 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP4 POP SWAP1 POP DUP8 DUP4 DUP2 RETURNDATASIZE DUP2 GT PUSH2 0x3D77 JUMPI JUMPDEST PUSH2 0x3D5C DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x504 JUMPI PUSH1 0x24 PUSH2 0x3D70 DUP7 SWAP5 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x3AF1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3D52 JUMP JUMPDEST DUP7 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x3D92 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x3D9C DUP3 PUSH2 0x4511 JUMP JUMPDEST SWAP2 PUSH1 0x70 DUP4 LT ISZERO PUSH2 0x3DD9 JUMPI POP DUP2 PUSH1 0x70 SUB SHL JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3FFF SWAP1 SWAP2 ADD PUSH1 0x70 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND OR PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 JUMP JUMPDEST PUSH1 0x70 DUP4 GT PUSH2 0x3DE8 JUMPI JUMPDEST POP PUSH2 0x3DAD JUMP JUMPDEST PUSH1 0x6F NOT DUP4 ADD SHR SWAP1 POP PUSH0 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x7FFF DUP2 PUSH1 0x80 SHR SWAP2 PUSH1 0xF0 SHR AND SWAP1 PUSH2 0x3FFF DUP3 LT PUSH2 0x3E54 JUMPI PUSH1 0x1 PUSH1 0x7F SHL DUP2 LT ISZERO PUSH2 0x71A JUMPI PUSH2 0x40FE DUP3 GT PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH1 0x1 PUSH1 0x70 SHL OR SWAP1 PUSH2 0x406F DUP1 DUP3 LT ISZERO PUSH2 0x3E41 JUMPI SUB SHR SWAP1 JUMP JUMPDEST DUP2 GT PUSH2 0x3E4B JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x406E NOT ADD SHL SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x7FFF DUP1 DUP3 PUSH1 0xF0 SHR AND DUP2 DUP5 PUSH1 0xF0 SHR AND SWAP1 DUP3 DUP2 EQ PUSH0 EQ PUSH2 0x3EE0 JUMPI POP SUB PUSH2 0x3EB8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 DUP2 AND DUP4 DUP3 AND SUB PUSH2 0x3E9A JUMPI POP PUSH1 0x1 PUSH1 0xFF SHL SWAP1 SWAP2 AND XOR SWAP1 JUMP JUMPDEST DUP2 DUP4 XOR AND PUSH1 0x1 PUSH1 0xFF SHL SUB PUSH2 0x3EAC JUMPI OR SWAP1 JUMP JUMPDEST POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 AND PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL AND XOR SWAP1 JUMP JUMPDEST DUP3 DUP3 SWAP4 SWAP3 SWAP6 SWAP5 SWAP6 EQ PUSH0 EQ PUSH2 0x3F11 JUMPI POP SWAP2 SWAP3 SWAP2 POP POP PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 AND PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 DUP7 PUSH1 0x80 SHR AND SWAP2 DUP1 ISZERO PUSH0 EQ PUSH2 0x409A JUMPI POP PUSH1 0x1 SWAP4 JUMPDEST DUP4 DUP7 PUSH1 0x80 SHR AND SWAP1 DUP1 ISZERO PUSH0 EQ PUSH2 0x408B JUMPI POP PUSH1 0x1 SWAP3 JUMPDEST MUL SWAP2 DUP3 SWAP5 DUP4 ISZERO PUSH2 0x406A JUMPI ADD SWAP3 DUP4 SWAP1 PUSH0 PUSH1 0x1 PUSH1 0xE1 SHL DUP6 LT PUSH2 0x4046 JUMPI POP PUSH1 0xE1 DUP1 SWAP3 JUMPDEST ADD SWAP2 PUSH2 0x4070 SWAP5 DUP6 DUP5 LT PUSH0 EQ PUSH2 0x3FA1 JUMPI POP POP POP POP POP POP POP POP SWAP1 PUSH0 SWAP2 DUP3 SWAP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP4 PUSH1 0x70 SHL SWAP2 PUSH1 0x1 PUSH1 0x7F SHL SWAP2 XOR PUSH1 0x80 SHR AND OR OR PUSH1 0x80 SHL AND SWAP1 JUMP JUMPDEST PUSH2 0x40E0 DUP5 LT ISZERO PUSH2 0x3FDE JUMPI POP POP POP POP POP DUP1 DUP3 LT PUSH0 EQ PUSH2 0x3FC4 JUMPI SUB SHR SWAP1 JUMPDEST PUSH0 SWAP3 PUSH2 0x3F7F JUMP JUMPDEST DUP2 GT PUSH2 0x3FD2 JUMPI JUMPDEST POP SWAP1 PUSH2 0x3FBD JUMP JUMPDEST PUSH2 0x406F NOT ADD SHL PUSH0 PUSH2 0x3FCB JUMP JUMPDEST SWAP2 SWAP5 POP SWAP2 SWAP5 POP PUSH2 0xC0DD DUP6 SWAP9 SWAP8 SWAP9 SWAP7 SWAP4 SWAP7 GT PUSH0 EQ PUSH2 0x4002 JUMPI POP POP POP POP POP SWAP2 PUSH0 SWAP2 PUSH2 0x3F7F JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP6 SWAP7 SWAP5 POP PUSH1 0x70 DUP3 GT PUSH0 EQ PUSH2 0x4028 JUMPI POP PUSH1 0x6F NOT ADD SHR JUMPDEST AND SWAP2 PUSH2 0x40DE NOT ADD SWAP3 PUSH2 0x3F7F JUMP JUMPDEST SWAP1 PUSH1 0x70 DUP2 LT PUSH2 0x4039 JUMPI JUMPDEST POP POP PUSH2 0x401B JUMP JUMPDEST PUSH1 0x70 SUB SHL SWAP1 POP PUSH0 DUP1 PUSH2 0x4032 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xE0 SHL DUP5 LT PUSH2 0x405C JUMPI PUSH1 0xE0 JUMPDEST DUP1 SWAP3 PUSH2 0x3F62 JUMP JUMPDEST PUSH2 0x4065 DUP5 PUSH2 0x4511 JUMP JUMPDEST PUSH2 0x4055 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP7 PUSH0 SWAP7 XOR DUP8 AND ISZERO SWAP5 POP PUSH2 0x4086 SWAP4 POP POP POP POP JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP2 OR SWAP1 PUSH2 0x3F42 JUMP JUMPDEST SWAP4 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP3 OR SWAP2 PUSH2 0x3F2E JUMP JUMPDEST PUSH2 0x7FFF PUSH2 0x4005 PUSH1 0xF0 DUP4 SWAP1 SHR DUP3 AND DUP1 DUP4 SUB PUSH2 0x40CD JUMPI POP SUB PUSH2 0x24F9 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 DUP2 DUP6 PUSH1 0x80 SHR AND DUP4 ISZERO PUSH0 EQ PUSH2 0x4284 JUMPI DUP1 PUSH2 0x4264 JUMPI JUMPDEST PUSH1 0x19 PUSH1 0x6C SHL SWAP1 DIV SWAP3 DUP4 ISZERO PUSH2 0x4242 JUMPI PUSH1 0x1 PUSH1 0x6C SHL DUP5 LT PUSH2 0x422E JUMPI PUSH0 PUSH1 0x1 PUSH1 0x73 SHL DUP6 LT PUSH2 0x41F8 JUMPI POP PUSH2 0x411A DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP3 JUMPDEST DUP2 DUP5 ADD SWAP1 PUSH2 0x4071 DUP5 ADD DUP3 GT ISZERO PUSH2 0x415F JUMPI POP POP POP POP POP POP SWAP1 PUSH0 SWAP1 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP3 PUSH1 0x70 SHL SWAP1 PUSH1 0x1 PUSH1 0x7F SHL SWAP1 PUSH3 0x40059 PUSH1 0xEC SHL XOR PUSH1 0x80 SHR AND OR OR PUSH1 0x80 SHL AND SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 SWAP6 POP PUSH2 0x3FFC SWAP5 DUP5 DUP7 DUP5 ADD LT PUSH0 EQ PUSH2 0x4185 JUMPI POP POP POP POP POP POP POP PUSH0 SWAP1 DUP2 SWAP1 PUSH2 0x4136 JUMP JUMPDEST DUP5 PUSH2 0x3F8C DUP5 ADD LT PUSH0 EQ PUSH2 0x41CE JUMPI POP POP POP DUP1 DUP4 ADD DUP3 DUP2 GT ISZERO PUSH2 0x41AC JUMPI POP SUB ADD SHL JUMPDEST PUSH0 SWAP2 PUSH2 0x4136 JUMP JUMPDEST DUP3 SWAP4 POP SWAP2 SWAP1 SWAP2 LT PUSH2 0x41BF JUMPI JUMPDEST POP POP PUSH2 0x41A5 JUMP JUMPDEST SWAP1 SUB PUSH2 0x3FFB NOT ADD SHR PUSH0 DUP1 PUSH2 0x41B8 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH2 0x3F8D SWAP5 POP PUSH1 0x70 DUP2 SWAP7 SWAP3 SWAP7 GT PUSH2 0x41ED JUMPI JUMPDEST POP AND SWAP3 SUB ADD SWAP2 PUSH2 0x4136 JUMP JUMPDEST PUSH1 0x6F NOT ADD SHR PUSH0 PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x72 SHL DUP6 LT PUSH2 0x4210 JUMPI POP PUSH1 0xFF PUSH1 0x72 JUMPDEST AND SWAP3 PUSH2 0x411C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x71 SHL DUP5 LT PUSH2 0x4225 JUMPI PUSH1 0xFF PUSH1 0x71 PUSH2 0x4209 JUMP JUMPDEST PUSH1 0xFF PUSH1 0x70 PUSH2 0x4209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP5 PUSH0 SWAP5 POP PUSH3 0x40059 PUSH1 0xEC SHL XOR DUP6 AND ISZERO SWAP3 POP PUSH2 0x4086 SWAP2 POP POP JUMPI POP SWAP1 JUMP JUMPDEST DUP1 SWAP4 POP PUSH2 0x4271 SWAP2 POP PUSH2 0x4511 JUMP JUMPDEST PUSH1 0xE2 SUB SWAP2 DUP3 SHL PUSH2 0x3F93 PUSH1 0x1 SWAP4 ADD SWAP1 PUSH2 0x40EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x70 SHL OR PUSH1 0x72 SHL PUSH2 0x40EB JUMP JUMPDEST SWAP1 PUSH2 0x7FFF DUP1 DUP4 PUSH1 0xF0 SHR AND SWAP1 DUP1 DUP4 PUSH1 0xF0 SHR AND SWAP2 DUP2 DUP2 EQ PUSH0 EQ PUSH2 0x42BF JUMPI POP SUB PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP3 SUB PUSH2 0x42F8 JUMPI POP POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x80 SHL DUP2 AND ISZERO PUSH2 0x42EE JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST XOR PUSH1 0x1 PUSH1 0xFF SHL AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB SWAP3 DUP5 DUP5 AND PUSH2 0x4332 JUMPI POP POP POP DUP3 AND PUSH2 0x4320 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7FFF PUSH1 0xF0 SHL SWAP2 XOR PUSH1 0x1 PUSH1 0xFF SHL AND OR SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP5 SWAP4 SWAP5 SWAP1 DUP2 DUP7 PUSH1 0x80 SHR AND SWAP1 DUP1 ISZERO PUSH0 EQ PUSH2 0x4505 JUMPI POP PUSH1 0x1 SWAP1 JUMPDEST DUP3 DUP7 PUSH1 0x80 SHR AND DUP5 ISZERO PUSH0 EQ PUSH2 0x44F2 JUMPI DUP1 PUSH2 0x44CA JUMPI JUMPDEST SWAP1 PUSH2 0x4374 SWAP2 PUSH2 0x2802 JUMP JUMPDEST SWAP3 DUP4 ISZERO PUSH2 0x44AF JUMPI PUSH1 0x1 PUSH1 0x6C SHL DUP5 LT PUSH2 0x422E JUMPI PUSH0 PUSH1 0x1 PUSH1 0x73 SHL DUP6 LT PUSH2 0x4479 JUMPI POP PUSH2 0x439C DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP3 JUMPDEST DUP2 DUP5 ADD SWAP1 PUSH2 0x4071 DUP5 ADD DUP3 GT ISZERO PUSH2 0x43DA JUMPI POP POP POP POP POP POP SWAP2 XOR PUSH1 0x80 SWAP1 DUP2 SHR PUSH1 0x1 PUSH1 0x7F SHL AND PUSH1 0x70 SWAP3 SWAP1 SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 SWAP6 POP PUSH2 0x3FFC SWAP8 SWAP7 SWAP8 SWAP5 DUP5 DUP7 DUP5 ADD LT PUSH0 EQ PUSH2 0x4404 JUMPI POP POP POP POP POP POP POP SWAP1 PUSH0 SWAP2 DUP3 SWAP2 PUSH2 0x3F7F JUMP JUMPDEST DUP5 PUSH2 0x3F8C DUP5 ADD LT PUSH0 EQ PUSH2 0x444E JUMPI POP POP POP DUP1 DUP4 ADD DUP3 DUP2 GT ISZERO PUSH2 0x442B JUMPI POP SUB ADD SHL SWAP1 PUSH0 SWAP3 PUSH2 0x3F7F JUMP JUMPDEST DUP3 SWAP4 POP SWAP2 SWAP1 SWAP2 LT PUSH2 0x443F JUMPI JUMPDEST POP POP SWAP1 PUSH2 0x3FBD JUMP JUMPDEST SWAP1 SUB PUSH2 0x3FFB NOT ADD SHR PUSH0 DUP1 PUSH2 0x4437 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH2 0x3F8D SWAP5 POP PUSH1 0x70 DUP2 SWAP8 SWAP7 SWAP3 SWAP8 GT PUSH2 0x446E JUMPI JUMPDEST POP AND SWAP4 SUB ADD SWAP3 PUSH2 0x3F7F JUMP JUMPDEST PUSH1 0x6F NOT ADD SHR PUSH0 PUSH2 0x4463 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x72 SHL DUP6 LT PUSH2 0x4491 JUMPI POP PUSH1 0xFF PUSH1 0x72 JUMPDEST AND SWAP3 PUSH2 0x439E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x71 SHL DUP5 LT PUSH2 0x44A6 JUMPI PUSH1 0xFF PUSH1 0x71 PUSH2 0x448A JUMP JUMPDEST PUSH1 0xFF PUSH1 0x70 PUSH2 0x448A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP6 PUSH0 SWAP6 XOR DUP7 AND ISZERO SWAP4 POP PUSH2 0x4086 SWAP3 POP POP POP JUMPI POP SWAP1 JUMP JUMPDEST SWAP4 POP PUSH2 0x4374 SWAP1 PUSH2 0x44D9 DUP6 PUSH2 0x4511 JUMP JUMPDEST PUSH1 0xE2 SUB SWAP5 DUP6 SHL SWAP3 PUSH1 0x1 SWAP6 PUSH1 0x71 NOT SWAP2 ADD ADD SWAP3 SWAP1 SWAP2 POP PUSH2 0x436A JUMP JUMPDEST PUSH2 0x4374 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL OR PUSH1 0x72 SHL PUSH2 0x2802 JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x70 SHL OR PUSH2 0x4356 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x71A JUMPI PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL DUP2 LT ISZERO PUSH2 0x45C5 JUMPI JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x2 SWAP3 LT ISZERO PUSH2 0x45B9 JUMPI JUMPDEST PUSH5 0x100000000 DUP2 LT ISZERO PUSH2 0x45AD JUMPI JUMPDEST PUSH3 0x10000 DUP2 LT ISZERO PUSH2 0x45A1 JUMPI JUMPDEST PUSH2 0x100 DUP2 LT ISZERO PUSH2 0x4595 JUMPI JUMPDEST PUSH1 0x10 DUP2 LT ISZERO PUSH2 0x4589 JUMPI JUMPDEST PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x457E JUMPI JUMPDEST LT ISZERO PUSH2 0x4578 JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 DUP2 SHR PUSH2 0x456F JUMP JUMPDEST PUSH1 0x4 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x8 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x455B JUMP JUMPDEST PUSH1 0x10 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4550 JUMP JUMPDEST PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4544 JUMP JUMPDEST PUSH1 0x40 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4536 JUMP JUMPDEST PUSH1 0x80 SWAP2 POP DUP2 SHR PUSH2 0x4526 JUMP INVALID LOG4 SWAP9 SMOD KECCAK256 0x5C 0xE4 0xD3 SSTORE MULMOD 0x2E CREATE2 0xA8 LOG1 DUP16 JUMP 0xE8 SWAP2 EXTCODECOPY DELEGATECALL LOG2 ADD 0xFB 0xE2 DUP8 DUP3 JUMPDEST MULMOD JUMP SWAP4 0xC2 OR PUSH22 0xA26469706673582212201AEFB3DD32FC94315259A4C1 PUSH8 0x992642FA8FFFB250 MUL PUSH7 0x5D7C1090CA8FC0 CREATE 0x21 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER 0x2F DUP8 DUP9 GT PUSH31 0x7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D405787FA SLT 0xA8 0x23 0xE0 CALLCODE 0xB7 PUSH4 0x1CC41B3B 0xA8 DUP3 DUP12 CALLER 0x21 0xCA DUP2 GT GT STATICCALL PUSH22 0xCD3AA3BB5ACE00000000000000000000000000000000 ",
							"sourceMap": "880:20499:23:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;880:20499:23;;;;1451:13:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;;;;;;;1451:13:9;880:20499:23;;;;;-1:-1:-1;;;;;880:20499:23;;;;1474:17:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;1474:17:9;880:20499:23;;;;;1474:17:9;880:20499:23;;-1:-1:-1;;;;;880:20499:23;;1273:26:3;1269:95;;3004:6;880:20499:23;;-1:-1:-1;;;;;880:20499:23;;;-1:-1:-1;;;;;;2232:4:1;;;;;;;880:20499:23;;;3052:40:3;-1:-1:-1;;3052:40:3;880:20499:23;;;-1:-1:-1;;;;;;880:20499:23;1085:3;880:20499;;;-1:-1:-1;3924:3:23;880:20499;;3904:18;;;;;3953:34;-1:-1:-1;;;;;3976:10:23;;;;:::i;:::-;988:23;880:20499;3953:34;:::i;:::-;-1:-1:-1;4002:42:23;-1:-1:-1;;;;;4033:10:23;;;;:::i;:::-;988:23;880:20499;4002:42;:::i;:::-;-1:-1:-1;;;880:20499:23;;;;;;3889:13;;880:20499;;;;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;3904:18;-1:-1:-1;4064:57:23;2232:4:1;;-1:-1:-1;;;;;;2232:4:1;;;-1:-1:-1;;;;;880:20499:23;;;2232:4:1;;;;;;;880:20499:23;2232:4:1;;-1:-1:-1;;;;;2232:4:1;880:20499:23;2232:4:1;;;;-1:-1:-1;;;;;;2232:4:1;;;;;;;;4198:66:23;2232:4:1;;;;880:20499:23;;;2232:4:1;;;;;;;4275:71:23;2232:4:1;;;;880:20499:23;;;;2232:4:1;;;;;;880:20499:23;2232:4:1;;;;;4499:42:23;2232:4:1;;;880:20499:23;;3904:18;;;880:20499;;;:::i;:::-;;;;;;5831:91;;880:20499;5799:13;880:20499;;;;;;;;;;;5799:13;880:20499;;;;;;5799:13;-1:-1:-1;880:20499:23;;-1:-1:-1;880:20499:23;;;;;;;;;;;2232:4:1;;880:20499:23;;;;;5831:91;;880:20499;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5831:91;;880:20499;5799:13;880:20499;;;;;;;;;;;5799:13;880:20499;;;;;;5799:13;-1:-1:-1;880:20499:23;;;;;;;;;;2232:4:1;;880:20499:23;5831:91;;;;880:20499;-1:-1:-1;;;;;;880:20499:23;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;4963:46;2232:4:1;;-1:-1:-1;;;;;;2232:4:1;;;880:20499:23;;;2232:4:1;;;;;;5019:71:23;2232:4:1;;;;;880:20499:23;;;;2232:4:1;;;;880:20499:23;;;-1:-1:-1;;;5302:81:23;;;;;2232:4:1;;;;880:20499:23;;2232:4:1;;;;;;880:20499:23;;2232:4:1;;;;880:20499:23;;;2232:4:1;;;;;;-1:-1:-1;;;2232:4:1;;;;880:20499:23;;5302:81;;;;;2232:4:1;;-1:-1:-1;;;;;;;880:20499:23;5302:81;;;;;;;-1:-1:-1;5302:81:23;;;2232:4:1;-1:-1:-1;5393:88:23;2232:4:1;;-1:-1:-1;;;;;;2232:4:1;-1:-1:-1;;;;;880:20499:23;;;2232:4:1;;;4064:57:23;2232:4:1;880:20499:23;;3156:5:13;-1:-1:-1;;;;;880:20499:23;;3576:26:13;-1:-1:-1;3572:173:13;;3758:22;;;3754:108;;880:20499:23;;;;;:::i;:::-;;;;-1:-1:-1;;;;;880:20499:23;;;3894:35:13;;;880:20499:23;;;-1:-1:-1;;;;;;880:20499:23;;-1:-1:-1;880:20499:23;;;;;;;;;;3754:108:13;880:20499:23;;-1:-1:-1;;;3803:48:13;;-1:-1:-1;5302:81:23;3803:48:13;;2232:4:1;;;3803:48:13;3572:173;880:20499:23;;-1:-1:-1;;;3679:55:13;;-1:-1:-1;;;;;880:20499:23;;;5302:81;3679:55:13;;880:20499:23;2232:4:1;880:20499:23;;;2232:4:1;;-1:-1:-1;3679:55:13;5302:81:23;;880:20499;5302:81;;880:20499;5302:81;;;;;;880:20499;5302:81;;;:::i;:::-;;;2232:4:1;;;;880:20499:23;;;;:::i;:::-;5302:81;;;2232:4:1;880:20499:23;;5302:81;;;-1:-1:-1;5302:81:23;;;880:20499;;2232:4:1;-1:-1:-1;2232:4:1;;;;;;;;-1:-1:-1;;;;;880:20499:23;2232:4:1;;;;-1:-1:-1;880:20499:23;2232:4:1;;;;;;;;880:20499:23;2232:4:1;;;880:20499:23;;;;-1:-1:-1;988:23:23;;;;;-1:-1:-1;988:23:23;880:20499;;;;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;1269:95:3;880:20499:23;;-1:-1:-1;;;1322:31:3;;-1:-1:-1;1322:31:3;;;2232:4:1;880:20499:23;;1322:31:3;880:20499:23;;;;-1:-1:-1;880:20499:23;;;;;1474:17:9;-1:-1:-1;880:20499:23;;;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;1474:17:9;880:20499:23;;;;;;;;;;1474:17:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1474:17:9;-1:-1:-1;880:20499:23;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;;;;;;;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;1451:13:9;-1:-1:-1;880:20499:23;;;-1:-1:-1;;;;;;;;;;;;;880:20499:23;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;1451:13:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:13:9;-1:-1:-1;880:20499:23;;;-1:-1:-1;;;;;;;;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;-1:-1:-1;880:20499:23;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;:::o;:::-;;;;;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;880:20499:23;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;880:20499:23;;;;:::o;:::-;;;;;;;;;;;;;988:23;880:20499;;988:23;;;;;;;;;;;;:::o;6179:316:1:-;-1:-1:-1;;;;;880:20499:23;-1:-1:-1;880:20499:23;;;;;;;;;;-1:-1:-1;;880:20499:23;988:23;;880:20499;;;;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;735:10:16;6370:40:1;;;880:20499:23;6424:11:1;:::o;6272:217::-;6466:12;;;:::o;6179:316::-;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;735:10:16;6370:40:1;-1:-1:-1;;;;;;;;;;;6370:40:1;;;880:20499:23;6424:11:1;:::o;6272:217::-;6466:12;;:::o"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"abi_decode_address": {
									"entryPoint": 8838,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_decode_address_37155": {
									"entryPoint": 8816,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_decode_address_fromMemory": {
									"entryPoint": 10646,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"abi_decode_addresst_addresst_uint256": {
									"entryPoint": 8860,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 3
								},
								"abi_decode_available_length_string": {
									"entryPoint": 9384,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"abi_decode_bool_fromMemory": {
									"entryPoint": 10683,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"abi_decode_string": {
									"entryPoint": 9438,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_string_fromMemory": {
									"entryPoint": 10696,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_struct_Event_fromMemory": {
									"entryPoint": 11664,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_struct_TicketType_fromMemory": {
									"entryPoint": 10762,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_uint32_fromMemory": {
									"entryPoint": 10666,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"abi_decode_uint80_fromMemory": {
									"entryPoint": 10272,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"abi_decode_uint80t_int256t_uint256t_uint256t_uint80_fromMemory": {
									"entryPoint": 10295,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 5
								},
								"abi_encode_address_address_payable_uint256": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 4,
									"returnSlots": 1
								},
								"abi_encode_address_uint256": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"abi_encode_string": {
									"entryPoint": 8779,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_encode_string_address_uint256_uint256_uint256": {
									"entryPoint": 10590,
									"id": null,
									"parameterSlots": 6,
									"returnSlots": 1
								},
								"array_allocation_size_array_struct_Ticket_dyn": {
									"entryPoint": 14957,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"array_allocation_size_string": {
									"entryPoint": 9357,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"checked_add_uint256": {
									"entryPoint": 11638,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"checked_div_uint256": {
									"entryPoint": 10242,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"checked_mul_uint256": {
									"entryPoint": 10203,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"checked_sub_uint256": {
									"entryPoint": 11651,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"copy_array_from_storage_to_memory_string": {
									"entryPoint": 9196,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"copy_memory_to_memory_with_cleanup": {
									"entryPoint": 8746,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 0
								},
								"extract_byte_array_length": {
									"entryPoint": 8986,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"extract_returndata": {
									"entryPoint": 9877,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"finalize_allocation": {
									"entryPoint": 9163,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"finalize_allocation_37165": {
									"entryPoint": 9042,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"finalize_allocation_37169": {
									"entryPoint": 9081,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"finalize_allocation_37177": {
									"entryPoint": 9109,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"finalize_allocation_52427": {
									"entryPoint": 9136,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"fun_approve": {
									"entryPoint": null,
									"id": 2011,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"fun_checkOnERC721Received": {
									"entryPoint": 9924,
									"id": 2141,
									"parameterSlots": 4,
									"returnSlots": 0
								},
								"fun_checkOwner": {
									"entryPoint": 9775,
									"id": 509,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"fun_checkRole": {
									"entryPoint": 9468,
									"id": 139,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"fun_div": {
									"entryPoint": 17042,
									"id": 6877,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_div_88255": {
									"entryPoint": 16553,
									"id": 6877,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_fromUInt": {
									"entryPoint": 15752,
									"id": 4605,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_getLatestData": {
									"entryPoint": 10345,
									"id": 9681,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"fun_getLatestDataMaticUsd": {
									"entryPoint": 10459,
									"id": 9695,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"fun_getTicketsPrice": {
									"entryPoint": 13434,
									"id": 10058,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_grantRole": {
									"entryPoint": 9532,
									"id": 302,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_mintTicket": {
									"entryPoint": 11883,
									"id": 10013,
									"parameterSlots": 3,
									"returnSlots": 0
								},
								"fun_mostSignificantBit": {
									"entryPoint": 17681,
									"id": 9523,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_mul": {
									"entryPoint": 15962,
									"id": 6536,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_requireOwned": {
									"entryPoint": 9819,
									"id": 2077,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_revokeRole": {
									"entryPoint": 9658,
									"id": 340,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_toString": {
									"entryPoint": 13076,
									"id": 2949,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_toUInt": {
									"entryPoint": 15862,
									"id": 4683,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_tokenURI": {
									"entryPoint": 13668,
									"id": 10709,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_transferFrom": {
									"entryPoint": 15000,
									"id": 10888,
									"parameterSlots": 3,
									"returnSlots": 0
								},
								"increment_uint256": {
									"entryPoint": 11624,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"memory_array_index_access_struct_Ticket_dyn": {
									"entryPoint": 14980,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"require_helper_stringliteral_c2b5": {
									"entryPoint": 10514,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"storage_array_index_access_struct_TokenInfo_dyn": {
									"entryPoint": 8913,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 2
								},
								"update_storage_value_offsett_bool_to_bool": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								}
							},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "6080806040526004361015610012575f80fd5b5f9060e08235811c91826301ffc9a71461216f5750816306fdde031461209e578163081812fc14612061578163095ea7b314611f7e57816312065fe014611f6257816323b872dd14611f4a578163248a9ca314611f1d57816324cda74514611ef357816326c91cad14611ea65781632a55205a14611df75781632f2ff15d14611db957816336568abe14611d715781633ccfd60b14611cad57816342842e0e14611c7f57816345a986c914611c545781634fdf478014611c3657816350b4471214611bae5781635f0d5b8514611b0b5781636352211e14611ada5781636bb03a87146119355781636e754d3d1461185d5781636f269b7a1461157157816370a0823114611519578163715018a6146114bc578163715e76aa146114935781637247b78914610bf957816375b238fc14610bd1578163796c848114610ba8578163871a1f2d14610b8d5781638ab234b614610ad55781638da5cb5b14610aac57816391d1485414610a6257816395d89b41146109965781639af1179e1461073a57508063a217fddf1461071e578063a22cb4651461066e578063aa9a09121461061f578063ab757d61146105fc578063b4c24af7146105db578063b88d4fde14610569578063c645848614610540578063c87b56dd14610508578063cac9266914610459578063d547741f14610417578063d56d2e60146103d4578063d7ff31e7146103aa578063dc40da5c14610381578063e274fd2414610358578063e985e9c514610306578063f074ec5a146102dd5763f2fde38b14610251575f80fd5b346102da5760203660031901126102da5761026a612270565b61027261262f565b6001600160a01b039081169081156102c157600854826001600160601b0360a01b821617600855167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b80fd5b50346102da57806003193601126102da57600c546040516001600160a01b039091168152602090f35b50346102da5760403660031901126102da57610320612270565b604061032a612286565b9260018060a01b03809316815260076020522091165f52602052602060ff60405f2054166040519015158152f35b50346102da57806003193601126102da576010546040516001600160a01b039091168152602090f35b50346102da57806003193601126102da57600d546040516001600160a01b039091168152602090f35b50346102da5760203660031901126102da5760406020916004358152601683522054604051908152f35b50346102da5760403660031901126102da576020906040906001600160a01b036103fc612270565b16815260178352818120602435825283522054604051908152f35b50346102da5760403660031901126102da57610455600435610437612286565b90808452600960205261045060016040862001546124fc565b6125ba565b5080f35b50346102da5760203660031901126102da576004356001600160601b038116809103610504575f805160206145d18339815191528252600960205260408220335f5260205260ff60405f205416156104bf576001600160601b0319600b541617600b5580f35b60405162461bcd60e51b815260206004820152601960248201527f4f6e6c7920666f756e646572732063616e20646f2074686174000000000000006044820152606490fd5b5080fd5b50346102da5760203660031901126102da5761053c610528600435613564565b60405191829160208352602083019061224b565b0390f35b50346102da57806003193601126102da576011546040516001600160a01b039091168152602090f35b50346102da5760803660031901126102da57610583612270565b61058b612286565b90604435606435926001600160401b0384116105d757366023850112156105d7576105c36105d49436906024816004013591016124a8565b926105cf838383613a98565b6126c4565b80f35b8480fd5b50346102da57806003193601126102da576020600b5460601c604051908152f35b50346102da57806003193601126102da576020610617612869565b604051908152f35b50346102da5760603660031901126102da576020610617610669610658610647600435613d88565b610652602435613d88565b90613e5a565b610663604435613d88565b90614292565b613df6565b50346102da5760403660031901126102da57610688612270565b602435908115159081830361071a576001600160a01b0316918215610701576106d290338552600760205260408520845f5260205260405f209060ff801983541691151516179055565b6040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b604051630b61174360e31b815260048101849052602490fd5b5f80fd5b50346102da57806003193601126102da57602090604051908152f35b82346102da576020806003193601126105045782610756612270565b600a546001600160a01b039492839290919083908716815b838110610957575061077f86613a6d565b9561078d60405197886123cb565b80875261079c601f1991613a6d565b01855b81811061090b575050845b83811061083f5750505050604051938085019181865284518093528160408701950193905b8382106107dc5786860387f35b84518051875280840151878501526040808201518a1690880152606080820151908801526080808201519088015260a0808201519088015260c08082015115159088015281015115158682015261010090950194938201936001909101906107cf565b80869895965260148552604088208960028201541690838214610871575b505061086890612d68565b969493966107aa565b60066040959395519161088383612379565b80548352600193848201548a85015260408401526003810154606084015260048101546080840152600581015460a0840152015460ff90818116151560c084015260081c161515888201526108d8838a613a84565b526108e38289613a84565b5081018091116108f757916108688a61085d565b634e487b7160e01b88526011600452602488fd5b978095969860405161091c81612379565b8a81528a838201528a60408201528a60608201528a60808201528a60a08201528a60c08201528a8982015282828b010152019795949761079f565b808698959652601485528189600260408b2001541614610984575b61097b90612d68565b9694939661076e565b95600181018091116108f75795610972565b82346102da57806003193601126102da576040515f6003546109b78161231a565b80845290600190818116908115610a3b57506001146109e1575b61053c84610528818603826123cb565b60035f90815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610a23575050508101602001610528826109d1565b80546020858701810191909152909301928101610a0b565b60ff191660208087019190915292151560051b8501909201925061052891508390506109d1565b82346102da5760403660031901126102da576040610a7e612286565b9160043581526009602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b82346102da57806003193601126102da576008546040516001600160a01b039091168152602090f35b82346102da5760203660031901126102da576004356001600160a01b0381811691829003610b895760405191610b0a83612395565b8252602082019060018252601254600160401b811015610b7557806001610b3492016012556122d1565b939093610b615751835492516001600160a81b031990931691161790151560a01b60ff60a01b1617905580f35b634e487b7160e01b85526004859052602485fd5b634e487b7160e01b85526041600452602485fd5b8280fd5b82346102da57806003193601126102da5760206106176128db565b82346102da57806003193601126102da57600c546040516001600160a01b039091168152602090f35b82346102da57806003193601126102da5760206040515f805160206145d18339815191528152f35b8260a03660031901126102da576004356001600160401b03811161050457610c259036906004016124de565b9060643515156064350361071a576084359160018060a01b036011541633835260176020526040832060243584526020526040832054813b1561148f57610c8d8492839260405194858094819363758ddfdd60e01b8352604435602435338c6004870161295e565b03925af18015610ebc5790839161147b575b505081926064356113b2575b50610cb760243561347a565b92610cc4604435856127db565b50610ccd612869565b610cd56128db565b916402540be40092808481020484148115171561139e57828481020484148315171561139e57610d1c604435670de0b6b3a7640000610d168787028b6127db565b046127db565b6064351561131d576040516370a0823160e01b8152336004820152906020826024816001600160a01b0388165afa91821561114a5788926112e0575b5064e8d4a5100090041161129b575b60105460405163c166549960e01b815290602090829060049082906001600160a01b03165afa8015611136578790819061125b575b6040516322b76fcf60e21b8152602480356004830152909350839182906001600160a01b03165afa90811561113657906101e0918891611239575b500151865b6044358110610ec7576010548890819089906001600160a01b0316803b15610ea1578280916044604051809481936347f6682b60e01b83526024356004840152833560248401525af1908115610ebc578391610ea5575b50506011546001600160a01b0316803b15610ea15760405163041b281960e51b8152602060048201529183918391829084908290610e7590602483019061224b565b03925af18015610e9657610e865750f35b610e8f90612352565b6102da5780f35b6040513d84823e3d90fd5b5050fd5b610eae90612352565b610eb9578184610e33565b50fd5b6040513d85823e3d90fd5b87670de0b6b3a7640000610edd8888028c6127db565b046064351561117d57670de0b6b3a764000081101561115f575b600b918254610f2a610669610f25610f1c6001600160601b0360648187160416613d88565b61065287613d88565b6140a9565b908c606435156110c75750508c610f5c575b50505050610f57905b610f528a60243533612e6b565b612d68565b610ddc565b91602091610f80610fb894610f7864e8d4a51000938492612d76565b048093612d83565b94546040516323b872dd60e01b815233600482015260609190911c602482015260448101929092529093049291829081906064820190565b03818d6001600160a01b038b165af180156110bc57611078575b50600d546040516323b872dd60e01b81523360048201526001600160a01b039091166024820152604481019190915260208180606481015b03818c6001600160a01b038a165af1801561106d5761102c575b808080610f3c565b6020813d602011611065575b81611045602093836123cb565b81010312611061579061105a610f57926129bb565b5090611024565b8880fd5b3d9150611038565b6040513d8b823e3d90fd5b6020813d6020116110b4575b81611091602093836123cb565b810103126110b05761100a916110a86020926129bb565b509150610fd2565b8980fd5b3d9150611084565b6040513d8c823e3d90fd5b93926110d89195506110df92612d76565b8092612d83565b928c6110f3575b50505050610f5790610f45565b828092819282908215611155575b60601c90f11561114a57600d5489918291829182916001600160a01b0316828215611141575bf11561113657898881806110e6565b6040513d89823e3d90fd5b506108fc611127565b6040513d8a823e3d90fd5b6108fc9150611101565b9050670de0b6b3a7640000611176888802856127db565b0490610ef7565b61118a9088860290612802565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561122557670de0b6b3a76400008110610ef7579050670de0b6b3a76400006111d1888802856127db565b04606481029080820460641490151715611225576111f29088860290612802565b662386f26fc10000908082810204821481151715611211570290610ef7565b634e487b7160e01b8b52601160045260248bfd5b634e487b7160e01b8a52601160045260248afd5b61125591503d808a833e61124d81836123cb565b810190612a0a565b89610dd7565b50506020813d602011611293575b81611276602093836123cb565b8101031261128f578661128a602492612996565b610d9c565b8680fd5b3d9150611269565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f7567687420455243323020746f2070617900000000000000006044820152606490fd5b9091506020813d602011611315575b816112fc602093836123cb565b8101031261131157519064e8d4a51000610d58565b8780fd5b3d91506112ef565b61132a9085830290612802565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561138a57341015610d675760405162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f756768206d6f6e657960801b6044820152606490fd5b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b86526011600452602486fd5b909250601254811015611442576113c8906122d1565b5060ff604051916113d883612395565b546001600160a01b038116835260a01c16158015602083015261140657516001600160a01b03169183610cab565b60405162461bcd60e51b815260206004820152601460248201527310dc9e5c1d1bc81b9bdd081cdd5c1c1bdc9d195960621b6044820152606490fd5b60405162461bcd60e51b815260206004820152601160248201527010dc9e5c1d1bc81a59081a5b9d985b1a59607a1b6044820152606490fd5b61148490612352565b610504578184610c9f565b8380fd5b82346102da57806003193601126102da576010546040516001600160a01b039091168152602090f35b82346102da57806003193601126102da576114d561262f565b600880546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b82346102da5760203660031901126102da576001600160a01b0361153b612270565b168015611558578160409160209352600583522054604051908152f35b6040516322718ad960e21b815260048101839052602490fd5b82346102da5760403660031901126102da576001600160401b0391600435838111610b89576115a49036906004016124de565b906115ad612286565b60085490946001600160a01b039182163314801561182b575b6115cf90612912565b81601154169260405191633e30dcf960e21b8352868360209687600483015281806115fd602482018c61224b565b03915afa928315611136578793611772575b50508101511561172d57606081015142116116f25760a060808201519101516116378161347a565b865b8381106116de575050859650826010541691823b1561128f57604487928360405195869485936347f6682b60e01b8552600485015260248401525af19081156116d35785916116bf575b50506011541691823b156116ba57610e759284928360405180968195829463041b281960e51b84526004840152602483019061224b565b505050fd5b6116c890612352565b6116ba578386611683565b6040513d87823e3d90fd5b6116ed90610f5283858c612e6b565b611639565b60405162461bcd60e51b815260048101849052601360248201527214995cd95c9d985d1a5bdb88195e1c1a5c9959606a1b6044820152606490fd5b60405162461bcd60e51b815260048101849052601a60248201527f496e76616c6964207265736572766174696f6e206e756d6265720000000000006044820152606490fd5b909192503d8088833e61178581836123cb565b8101908581830312611311578051908382116110615701906101008282031261131157604051926117b584612379565b825190811161106157916117cf859261181f9483016129c8565b84526117dc878201612996565b8785015260408101516040850152606081015160608501526080810151608085015260a081015160a085015261181460c082016129bb565b60c0850152016129bb565b8282015290878061160f565b505f805160206145d18339815191528552600960205260408520335f526020526115cf60ff60405f20541690506115c6565b82346102da5760603660031901126102da57611877612270565b9060243560443560018060a01b03806008541633148015611903575b61189c90612912565b6118a58261347a565b845b8481106118ef5750508394506010541691823b156116ba57604484928360405195869485936347f6682b60e01b8552600485015260248401525af18015610e9657610e865750f35b6118fe90610f5283868a612e6b565b6118a7565b505f805160206145d18339815191528452600960205260408420335f5260205261189c60ff60405f2054169050611893565b82346102da5760403660031901126102da5760249081356001600160401b03808211610b895736602383011215610b89578160040135908111610b895736848284010111610b89576008546001600160a01b031633148015611aa8575b61199b90612912565b60043583526020936015855260408420926119b6845461231a565b601f8111611a65575b508495601f84116001146119fe5750948495839495936119f1575b5050508160011b915f199060031b1c191617905580f35b01013590508480806119da565b91601f198416968587528387209387905b898210611a4b57505084600196979810611a30575b50505050811b01905580f35b5f1960f88660031b161c199201013516905584808080611a24565b806001849786839596890101358155019601920190611a0f565b848652868620601f850160051c810191888610611a9e575b601f0160051c01905b818110611a9357506119bf565b868155600101611a86565b9091508190611a7d565b505f805160206145d18339815191528352600960205260408320335f5260205261199b60ff60405f2054169050611992565b82346102da5760203660031901126102da576020611af960043561265b565b6040516001600160a01b039091168152f35b82346102da5760603660031901126102da576004356001600160401b03811161050457611b3c9036906004016124de565b816024359160018060a01b0360115416338352601760205260408320848452602052604083205491813b1561148f5783611b93956040519687958694859363758ddfdd60e01b85526044359133906004870161295e565b03925af18015610e9657611ba5575080f35b6105d490612352565b9050346105045760203660031901126105045760406101009260043581526014602052209060ff82549260018101549060018060a01b0360028201541660038201546004830154916006600585015494015494604051988952602089015260408801526060870152608086015260a0850152818116151560c085015260081c16151590820152f35b82346102da57806003193601126102da576020600a54604051908152f35b82346102da5760203660031901126102da57610528604061053c9260043581526015602052206123ec565b82346102da576105d4611c913661229c565b9060405192611c9f846123b0565b8584526105cf838383613a98565b82346102da57806003193601126102da57611cc661262f565b478015611d2c57600c5482918291829182916001600160a01b03165af1611ceb612695565b5015611cf45780f35b60405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4e6f206574686572206c65667420746f207769746864726177000000000000006044820152606490fd5b82346102da5760403660031901126102da57611d8b612286565b336001600160a01b03821603611da757610455906004356125ba565b60405163334bd91960e11b8152600490fd5b82346102da5760403660031901126102da57610455600435611dd9612286565b908084526009602052611df260016040862001546124fc565b61253c565b82346102da5760403660031901126102da57600435815260016020526040812060405190611e2482612395565b546001600160a01b0380821680845260a09290921c602084015291929015611e82575b50612710611e646001600160601b036020850151166024356127db565b925160408051939091166001600160a01b0316835292046020820152f35b604051919250611e9182612395565b54828116825260a01c60208201529082611e47565b82346102da5760203660031901126102da57600435906012548210156102da576040611ed1836122d1565b505481516001600160a01b038216815260a09190911c60ff1615156020820152f35b82346102da5760203660031901126102da5760406020916004358152601683522054604051908152f35b82346102da5760203660031901126102da5760016040602092600435815260098452200154604051908152f35b82346102da576105d4611f5c3661229c565b91613a98565b82346102da57806003193601126102da57602047604051908152f35b82346102da5760403660031901126102da57611f98612270565b602435611fa48161265b565b3315158061204e575b80612023575b61200b576001600160a01b039283169282918491167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258680a4825260066020526040822080546001600160a01b031916909117905580f35b60405163a9fbf51f60e01b8152336004820152602490fd5b506001600160a01b038116845260076020908152604080862033875290915284205460ff1615611fb3565b506001600160a01b038116331415611fad565b82346102da5760203660031901126102da576020906004356120828161265b565b50815260068252604060018060a01b0391205416604051908152f35b82346102da57806003193601126102da5760405190806002546120c08161231a565b8085529160019180831690811561214557506001146120ea575b61053c85610528818703826123cb565b9250600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b82841061212d5750505081016020016105288261053c6120da565b80546020858701810191909152909301928101612112565b86955061053c9693506020925061052894915060ff191682840152151560051b82010192936120da565b8390346105045760203660031901126105045760043563ffffffff60e01b8116809103610b89576020925063152a902d60e11b81148015806121b4575b501515825250f35b637965db0b60e01b83149283156121d0575b50505080846121ac565b6380ac58cd60e01b8114935090918315612219575b83156121f7575b5050508380806121c6565b925090612208575b508380806121ec565b6301ffc9a760e01b149050836121ff565b635b5e139f60e01b821493506121e5565b5f5b83811061223b5750505f910152565b818101518382015260200161222c565b906020916122648151809281855285808601910161222a565b601f01601f1916010190565b600435906001600160a01b038216820361071a57565b602435906001600160a01b038216820361071a57565b606090600319011261071a576001600160a01b0390600435828116810361071a5791602435908116810361071a579060443590565b6012548110156123065760125f527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344401905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c92168015612348575b602083101461233457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612329565b6001600160401b03811161236557604052565b634e487b7160e01b5f52604160045260245ffd5b61010081019081106001600160401b0382111761236557604052565b604081019081106001600160401b0382111761236557604052565b602081019081106001600160401b0382111761236557604052565b90601f801991011681019081106001600160401b0382111761236557604052565b9060405191825f8254926123ff8461231a565b9081845260019485811690815f1461246a575060011461242a575b5050612428925003836123cb565b565b909391505f52602090815f20935f915b81831061245257505061242893508201015f8061241a565b8554888401850152948501948794509183019161243a565b91505061242894506020925060ff191682840152151560051b8201015f8061241a565b6001600160401b03811161236557601f01601f191660200190565b9291926124b48261248d565b916124c260405193846123cb565b82948184528183011161071a578281602093845f960137010152565b9080601f8301121561071a578160206124f9933591016124a8565b90565b805f52600960205260405f20335f5260205260ff60405f2054161561251e5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b905f918083526009602052604083209160018060a01b03169182845260205260ff604084205416155f146125b55780835260096020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b905f918083526009602052604083209160018060a01b03169182845260205260ff6040842054165f146125b5578083526009602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6008546001600160a01b0316330361264357565b60405163118cdaa760e01b8152336004820152602490fd5b5f818152600460205260409020546001600160a01b031690811561267d575090565b60249060405190637e27328960e01b82526004820152fd5b3d156126bf573d906126a68261248d565b916126b460405193846123cb565b82523d5f602084013e565b606090565b9190803b6126d3575b50505050565b61271560018060a01b0380921694604051938493630a85bd0160e11b96878652336004870152166024850152604484015260806064840152608483019061224b565b03906020815f938185885af190829082612793575b50506127625782612739612695565b805191908261275b57604051633250574960e11b815260048101839052602490fd5b9050602001fd5b6001600160e01b0319160361277b57505f8080806126cd565b60249060405190633250574960e11b82526004820152fd5b909192506020813d82116127d3575b816127af602093836123cb565b810103126105045751906001600160e01b0319821682036102da5750905f8061272a565b3d91506127a2565b818102929181159184041417156127ee57565b634e487b7160e01b5f52601160045260245ffd5b811561280c570490565b634e487b7160e01b5f52601260045260245ffd5b519069ffffffffffffffffffff8216820361071a57565b908160a091031261071a5761284b81612820565b916020820151916040810151916124f9608060608401519301612820565b600e54604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa9081156128d0575f916128a0575090565b6128c1915060a03d81116128c9575b6128b981836123cb565b810190612837565b505050905090565b503d6128af565b6040513d5f823e3d90fd5b600f54604051633fabe5a360e21b81529060a090829060049082906001600160a01b03165afa9081156128d0575f916128a0575090565b1561291957565b60405162461bcd60e51b815260206004820152601760248201527f4f6e6c792061646d696e732063616e20646f20746861740000000000000000006044820152606490fd5b91959493909261297860809460a0855260a085019061224b565b6001600160a01b039097166020840152604083015260608201520152565b51906001600160a01b038216820361071a57565b519063ffffffff8216820361071a57565b5190811515820361071a57565b81601f8201121561071a5780516129de8161248d565b926129ec60405194856123cb565b8184526020828401011161071a576124f9916020808501910161222a565b9060208282031261071a5781516001600160401b039283821161071a57016102c092838284031261071a57604080519485018581108382111761236557815282518552612a59602084016129aa565b6020860152612a698184016129aa565b81860152606083015160608601526080830151608086015260a083015160a0860152612a9760c084016129bb565b60c086015260e083015160e086015261010093612ab58585016129bb565b858701526101209283850151848801526101408086015181890152610160612ade8188016129bb565b818a01526101809081880151828b01526101a09283890151848c01526101c097888a0151898d01526101e09a8c8c808d01519101528c8b612b236102008092016129bb565b9101528c610220612b35818e016129bb565b910152610240808c01519088821161071a57612b558f928b908f016129c8565b910152610260808c01519088821161071a57612b758f928b908f016129c8565b910152610280808c01519088821161071a57612b958f928b908f016129c8565b9101526102a09a8b8101519088821161071a5701988c8a8a031261071a5780519c8d018d811089821117612365578152895188811161071a5789612bda918c016129c8565b8d5260208a015188811161071a576020612bf88f928c908e016129c8565b910152808a015188811161071a5789612c12918c016129c8565b908d0152606089015187811161071a5788612c2e918b016129c8565b60608d0152608089015187811161071a5788612c4b918b016129c8565b60808d015260a089015187811161071a5788612c68918b016129c8565b60a08d015260c089015187811161071a5788612c85918b016129c8565b60c08d015260e089015187811161071a5788612ca2918b016129c8565b60e08d01528089015187811161071a5788612cbe918b016129c8565b908c01528088015186811161071a5787612cd9918a016129c8565b908b01528087015185811161071a5786612cf49189016129c8565b908a01528086015184811161071a5785612d0f9188016129c8565b908901528085015183811161071a5784612d2a9187016129c8565b908801528084015182811161071a5783612d459186016129c8565b908701528383015190811161071a57612d5e92016129c8565b9083015282015290565b5f1981146127ee5760010190565b919082018092116127ee57565b919082039182116127ee57565b9060208282031261071a5781516001600160401b039283821161071a57016101008183031261071a5760405192612dc684612379565b815181811161071a5783612ddb9184016129c8565b845260208201516020850152604082015160408501526060820151600281101561071a576060850152608082015181811161071a5783612e1c9184016129c8565b608085015260a082015190811161071a5760e092612e3b9183016129c8565b60a0840152612e4c60c082016129bb565b60c084015201516001600160601b038116810361071a5760e082015290565b9091600a545f604092835191612e80836123b0565b8083526001600160a01b038681169687156132fc5785835260049360209585875283898620541692831515806132cb575b8b8752600589528a872060018154019055898752878952898c8c8920966001600160601b0360a01b9782898254161790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a80a46132b4573b6131bd575b50848484601054168a51928380926305fc0ce160e51b82525afa9081156131b357612fce8c8b612fbe60228d612f5b612f558f998e998a91613191575b505196613314565b91613314565b935193849189612f74818501988981519384920161222a565b830190601d60f91b91828c820152612f968c835193849160218501910161222a565b01906021820152612faf825180938c878501910161222a565b010360028101845201826123cb565b8c5192839283925192839161222a565b8101039060025afa156131875787918a889286518c865194612fef86612379565b8686528b8601948552878601918252606086019283526080860193845260a086019442865260c08701988b8a528d60e089019960018b528d52601490528b209651875551600187015588600287019251169082541617905551600384015551878301555160058201556006019151151561307590839060ff801983541691151516179055565b51151581549060081b61ff00169061ff00191617905560105416803b15610504578180916044885180948193630b382aed60e41b83528d898401528a60248401525af1801561317d5761316e575b50838152601683528685822055858152601783528481208782528352848120546001810180911161315b5786825260178452858220888352845285822055600a549160018301809311613148575050600a5582519485528401528201527f756915dc79fbe0544cde2132b389579561b584214b5ba2644e80d0bbb565047c90606090a1565b634e487b7160e01b825260119052602490fd5b506011602492634e487b7160e01b835252fd5b61317790612352565b5f6130c3565b86513d84823e3d90fd5b87513d85823e3d90fd5b6131ad91503d808c833e6131a581836123cb565b810190612d90565b5f612f4d565b89513d87823e3d90fd5b946132008789978c849e9a9f9b898e51809681958294630a85bd0160e11b9a8b85523390850152846024850152604484015260806064840152608483019061224b565b03925af1869181613274575b50613242578c8c8c8c61321d612695565b8051948561323c57505051633250574960e11b81529182015260249150fd5b85925001fd5b979b969a95976001600160e01b0319160361325d575f612f10565b8751633250574960e11b81528086018a9052602490fd5b9091508d81813d83116132ad575b61328c81836123cb565b8101031261128f57516001600160e01b03198116810361128f57905f61320c565b503d613282565b89516339e3563760e11b8152808801879052602490fd5b5f8a815260066020526040902080546001600160a01b0319169055848752600589528a872080545f19019055612eb1565b8651633250574960e11b815260048101849052602490fd5b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561346c575b506d04ee2d6d415b85acef81000000008083101561345d575b50662386f26fc100008083101561344e575b506305f5e1008083101561343f575b5061271080831015613430575b506064821015613420575b600a80921015613416575b600190816021818601956133ac8761248d565b966133ba60405198896123cb565b8088526133c9601f199161248d565b01366020890137860101905b6133e1575b5050505090565b5f19019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215613411579190826133d5565b6133da565b9160010191613399565b919060646002910491019161338e565b6004919392049101915f613383565b6008919392049101915f613376565b6010919392049101915f613367565b6020919392049101915f613355565b60409350810491505f61333c565b60105460405163c166549960e01b81526001600160a01b0392916020908290600490829087165afa9081156128d0575f91613525575b5060245f9260405194859384926322b76fcf60e21b84526004840152165afa9081156128d0575f9161350c575b506060810151906101608101516134f2575090565b6101a08101514210613502575090565b6101809150015190565b61351f913d8091833e61124d81836123cb565b5f6134dd565b906020823d821161355c575b8161353e602093836123cb565b810103126102da57509060246135545f93612996565b9192506134b0565b3d9150613531565b5f818152600460205260409020546001600160a01b031615613a1057805f52601460205260405f2060405161359881612379565b8154815260e060ff60066001850154946020850195865260018060a01b0360028201541660408601526003810154606086015260048101546080860152600581015460a08601520154818116151560c085015260081c16151591015260018060a01b0360105416906040519063c166549960e01b8252602082600481865afa9182156128d0575f926139d3575b50516040516322b76fcf60e21b81526004810191909152905f90829060249082906001600160a01b03165afa9081156128d0575f916139b9575b5060019060c08101511561399b575b835f52601560205261368360405f205461231a565b1561369e575050505f5260156020526124f960405f206123ec565b6101c0819492939401519360045f61026084015192604051928380926305fc0ce160e51b82525afa80156128d0576020915f91613981575b5001516102a0830151906102008401511515926102208501511515946101000151151595604051986137078a612379565b8952602089015260408801526060870152608086015260a085015260c084015260e0830152600160a01b600190036013541690604051809381926303605e0d60e51b835230600484015260248301606090528151606484015260208201516084840152604082015160a48401610100905261016484016137869161224b565b606083015160c485015260808301516063198583030160e486015280516101e080845283016137b49161224b565b60208201519083810360208501526137cb9161224b565b60408201519083810360408501526137e29161224b565b60608201519083810360608501526137f99161224b565b60808201519083810360808501526138109161224b565b60a08201519083810360a08501526138279161224b565b60c08201519083810360c085015261383e9161224b565b60e08201519083810360e08501526138559161224b565b6101008201519083810361010085015261386e9161224b565b610120908183015191848203908501526138879161224b565b610140908183015191848203908501526138a09161224b565b610160908183015191848203908501526138b99161224b565b610180908183015191848203908501526138d29161224b565b6101a0908183015191848203908501526138eb9161224b565b906101c0015191808203906101c001526139049161224b565b9160a0810151151561010485015260c0810151151561012485015260e0015115156101448401521515604483015203815a935f94fa9081156128d0575f9161394a575090565b90503d805f833e61395b81836123cb565b810160208282031261071a5781516001600160401b03811161071a576124f992016129c8565b61399591503d805f833e6131a581836123cb565b5f6136d6565b905060e081015142115f146139b25760019061366e565b5f9061366e565b6139cd91503d805f833e61124d81836123cb565b5f61365f565b9091506020813d602011613a08575b816139ef602093836123cb565b8101031261071a57613a015f91612996565b9190613625565b3d91506139e2565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b6001600160401b0381116123655760051b60200190565b80518210156123065760209160051b010190565b909291925f9380855260208091601482526040808820946016845281892054908960018060a01b039283601054169085519889809363c166549960e01b825260049b8c915afa918215613d7e5790839291869492613d43575b50602490875194859384926322b76fcf60e21b84528d840152165afa908115613d3957908392918c91613d1f575b505f805160206145d18339815191528c5260098752848c20338d52875260ff858d20541615613cd8575b5016968715613cc157838a5285855281838b2054169433151580613c2f575b5088867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef829c9d8a899584613bfe575b8583526005815289832060018154019055868352528781206001600160601b0360a01b9e8f82541617905580a41690818403613bdf57505050505060020191825416179055565b516364283d7b60e01b8152938401526024830152604482015260649150fd5b5f87815260066020526040902080546001600160a01b03191690558483526005815289832080545f19019055613b98565b80613c80575b15613c40575f613b68565b84878588613c5d57916024925191637e27328960e01b8352820152fd5b5163177e802f60e01b815233918101918252602082019290925281906040010390fd5b503386148015613ca5575b80613c355750848b52600681523383858d20541614613c35565b50858b5260078152838b20338c52815260ff848c205416613c8b565b8251633250574960e11b81528087018b9052602490fd5b610100919250015115613ced5781905f613b49565b825162461bcd60e51b8152808701869052600c60248201526b6e6f742073656c6c61626c6560a01b6044820152606490fd5b613d3391503d808e833e61124d81836123cb565b5f613b1f565b84513d8d823e3d90fd5b935090508783813d8111613d77575b613d5c81836123cb565b81010312610504576024613d708694612996565b9190613af1565b503d613d52565b86513d85823e3d90fd5b80613d9257505f90565b80613d9c82614511565b916070831015613dd95750816070031b5b6001600160701b0316613fff90910160701b6001600160801b03161760801b6001600160801b03191690565b60708311613de8575b50613dad565b606f1983011c90505f613de2565b617fff8160801c9160f01c1690613fff8210613e54576001607f1b81101561071a576140fe821161071a576001600160701b0316600160701b179061406f80821015613e4157031c90565b8111613e4b575090565b61406e19011b90565b50505f90565b617fff808260f01c16818460f01c16908281145f14613ee0575003613eb8576001600160801b031981811683821603613e9a5750600160ff1b9091161890565b81831816600160ff1b03613eac571790565b5061ffff60ef1b919050565b90600160801b600160ff1b038116613ed6575061ffff60ef1b919050565b600160ff1b161890565b82829392959495145f14613f1157509192915050600160801b600160ff1b038116613ed6575061ffff60ef1b919050565b6001600160701b0391828660801c169180155f1461409a57506001935b838660801c169080155f1461408b57506001925b02918294831561406a57019283905f600160e11b8510614046575060e180925b0191614070948584105f14613fa1575050505050505050905f9182915b6001600160801b03199360701b916001607f1b911860801c16171760801b1690565b6140e0841015613fde5750505050508082105f14613fc457031c905b5f92613f7f565b8111613fd2575b5090613fbd565b61406f19011b5f613fcb565b91945091945061c0dd85989798969396115f14614002575050505050915f91613f7f565b9091929395969450607082115f146140285750606f19011c5b16916140de190192613f7f565b9060708110614039575b505061401b565b6070031b90505f80614032565b50600160e01b841061405c5760e05b8092613f62565b61406584614511565b614055565b50600160ff1b965f961887161594506140869350505050575090565b905090565b92600160701b90911790613f42565b93600160701b90921791613f2e565b617fff61400560f083901c82168083036140cd5750036124f9575061ffff60ef1b90565b906001600160701b0390818560801c1683155f146142845780614264575b6019606c1b9004928315614242576001606c1b841061422e575f600160731b85106141f8575061411a84614511565b925b81840190614071840182111561415f57505050505050905f905b6001600160801b03199260701b906001607f1b906204005960ec1b1860801c16171760801b1690565b90919293949550613ffc9484868401105f1461418557505050505050505f908190614136565b84613f8c8401105f146141ce57505050808301828111156141ac575003011b5b5f91614136565b829350919091106141bf575b50506141a5565b9003613ffb19011c5f806141b8565b909250613f8d9450607081969296116141ed575b501692030191614136565b606f19011c5f6141e2565b600160721b8510614210575060ff60725b169261411c565b50600160711b84106142255760ff6071614209565b60ff6070614209565b634e487b7160e01b5f52600160045260245ffd5b50600160ff1b945f94506204005960ec1b188516159250614086915050575090565b8093506142719150614511565b60e20391821b613f9360019301906140eb565b600160701b1760721b6140eb565b90617fff808360f01c1690808360f01c16918181145f146142bf575003613ed6575061ffff60ef1b919050565b8282036142f8575050506dffffffffffffffffffffffffffff60801b8116156142ee575061ffff60ef1b919050565b18600160ff1b1690565b600160801b600160ff1b0392848416614332575050508216614320575061ffff60ef1b919050565b617fff60f01b9118600160ff1b161790565b909192506001600160701b0394939490818660801c169080155f1461450557506001905b828660801c1684155f146144f257806144ca575b9061437491612802565b9283156144af576001606c1b841061422e575f600160731b8510614479575061439c84614511565b925b8184019061407184018211156143da575050505050509118608090811c6001607f1b1660709290921b91909117901b6001600160801b03191690565b90919293949550613ffc9796979484868401105f146144045750505050505050905f918291613f7f565b84613f8c8401105f1461444e575050508083018281111561442b575003011b905f92613f7f565b8293509190911061443f575b505090613fbd565b9003613ffb19011c5f80614437565b909250613f8d9450607081979692971161446e575b501693030192613f7f565b606f19011c5f614463565b600160721b8510614491575060ff60725b169261439e565b50600160711b84106144a65760ff607161448a565b60ff607061448a565b50600160ff1b955f9518861615935061408692505050575090565b9350614374906144d985614511565b60e20394851b926001956071199101019290915061436a565b6143749190600160701b1760721b612802565b90600160701b17614356565b801561071a575f90600160801b8110156145c5575b80600160401b60029210156145b9575b6401000000008110156145ad575b620100008110156145a1575b610100811015614595575b6010811015614589575b600481101561457e575b10156145785790565b60010190565b91810191811c61456f565b6004928301921c614565565b6008928301921c61455b565b6010928301921c614550565b6020928301921c614544565b6040928301921c614536565b60809150811c61452656fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212201aefb3dd32fc94315259a4c167992642fa8fffb25002665d7c1090ca8fc0f02164736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 SWAP1 PUSH1 0xE0 DUP3 CALLDATALOAD DUP2 SHR SWAP2 DUP3 PUSH4 0x1FFC9A7 EQ PUSH2 0x216F JUMPI POP DUP2 PUSH4 0x6FDDE03 EQ PUSH2 0x209E JUMPI DUP2 PUSH4 0x81812FC EQ PUSH2 0x2061 JUMPI DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x1F7E JUMPI DUP2 PUSH4 0x12065FE0 EQ PUSH2 0x1F62 JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x1F4A JUMPI DUP2 PUSH4 0x248A9CA3 EQ PUSH2 0x1F1D JUMPI DUP2 PUSH4 0x24CDA745 EQ PUSH2 0x1EF3 JUMPI DUP2 PUSH4 0x26C91CAD EQ PUSH2 0x1EA6 JUMPI DUP2 PUSH4 0x2A55205A EQ PUSH2 0x1DF7 JUMPI DUP2 PUSH4 0x2F2FF15D EQ PUSH2 0x1DB9 JUMPI DUP2 PUSH4 0x36568ABE EQ PUSH2 0x1D71 JUMPI DUP2 PUSH4 0x3CCFD60B EQ PUSH2 0x1CAD JUMPI DUP2 PUSH4 0x42842E0E EQ PUSH2 0x1C7F JUMPI DUP2 PUSH4 0x45A986C9 EQ PUSH2 0x1C54 JUMPI DUP2 PUSH4 0x4FDF4780 EQ PUSH2 0x1C36 JUMPI DUP2 PUSH4 0x50B44712 EQ PUSH2 0x1BAE JUMPI DUP2 PUSH4 0x5F0D5B85 EQ PUSH2 0x1B0B JUMPI DUP2 PUSH4 0x6352211E EQ PUSH2 0x1ADA JUMPI DUP2 PUSH4 0x6BB03A87 EQ PUSH2 0x1935 JUMPI DUP2 PUSH4 0x6E754D3D EQ PUSH2 0x185D JUMPI DUP2 PUSH4 0x6F269B7A EQ PUSH2 0x1571 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x1519 JUMPI DUP2 PUSH4 0x715018A6 EQ PUSH2 0x14BC JUMPI DUP2 PUSH4 0x715E76AA EQ PUSH2 0x1493 JUMPI DUP2 PUSH4 0x7247B789 EQ PUSH2 0xBF9 JUMPI DUP2 PUSH4 0x75B238FC EQ PUSH2 0xBD1 JUMPI DUP2 PUSH4 0x796C8481 EQ PUSH2 0xBA8 JUMPI DUP2 PUSH4 0x871A1F2D EQ PUSH2 0xB8D JUMPI DUP2 PUSH4 0x8AB234B6 EQ PUSH2 0xAD5 JUMPI DUP2 PUSH4 0x8DA5CB5B EQ PUSH2 0xAAC JUMPI DUP2 PUSH4 0x91D14854 EQ PUSH2 0xA62 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x996 JUMPI DUP2 PUSH4 0x9AF1179E EQ PUSH2 0x73A JUMPI POP DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x66E JUMPI DUP1 PUSH4 0xAA9A0912 EQ PUSH2 0x61F JUMPI DUP1 PUSH4 0xAB757D61 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xB4C24AF7 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xC6458486 EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0xCAC92669 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xD56D2E60 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xD7FF31E7 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0xDC40DA5C EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xE274FD24 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xF074EC5A EQ PUSH2 0x2DD JUMPI PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x26A PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x262F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x8 SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL DUP3 AND OR PUSH1 0x8 SSTORE AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x320 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x40 PUSH2 0x32A PUSH2 0x2286 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 SWAP4 AND DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE KECCAK256 SWAP2 AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x3FC PUSH2 0x2270 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x17 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x24 CALLDATALOAD DUP3 MSTORE DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x455 PUSH1 0x4 CALLDATALOAD PUSH2 0x437 PUSH2 0x2286 JUMP JUMPDEST SWAP1 DUP1 DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH2 0x450 PUSH1 0x1 PUSH1 0x40 DUP7 KECCAK256 ADD SLOAD PUSH2 0x24FC JUMP JUMPDEST PUSH2 0x25BA JUMP JUMPDEST POP DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP1 SWAP2 SUB PUSH2 0x504 JUMPI PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND ISZERO PUSH2 0x4BF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0xB SLOAD AND OR PUSH1 0xB SSTORE DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920666F756E646572732063616E20646F207468617400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x53C PUSH2 0x528 PUSH1 0x4 CALLDATALOAD PUSH2 0x3564 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x11 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x583 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x58B PUSH2 0x2286 JUMP JUMPDEST SWAP1 PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT PUSH2 0x5D7 JUMPI CALLDATASIZE PUSH1 0x23 DUP6 ADD SLT ISZERO PUSH2 0x5D7 JUMPI PUSH2 0x5C3 PUSH2 0x5D4 SWAP5 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x24A8 JUMP JUMPDEST SWAP3 PUSH2 0x5CF DUP4 DUP4 DUP4 PUSH2 0x3A98 JUMP JUMPDEST PUSH2 0x26C4 JUMP JUMPDEST DUP1 RETURN JUMPDEST DUP5 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0xB SLOAD PUSH1 0x60 SHR PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x2869 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x669 PUSH2 0x658 PUSH2 0x647 PUSH1 0x4 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x652 PUSH1 0x24 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST SWAP1 PUSH2 0x3E5A JUMP JUMPDEST PUSH2 0x663 PUSH1 0x44 CALLDATALOAD PUSH2 0x3D88 JUMP JUMPDEST SWAP1 PUSH2 0x4292 JUMP JUMPDEST PUSH2 0x3DF6 JUMP JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x688 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 ISZERO ISZERO SWAP1 DUP2 DUP4 SUB PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 ISZERO PUSH2 0x701 JUMPI PUSH2 0x6D2 SWAP1 CALLER DUP6 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 DUP5 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 CALLER SWAP3 LOG3 DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x504 JUMPI DUP3 PUSH2 0x756 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 SWAP1 DUP4 SWAP1 DUP8 AND DUP2 JUMPDEST DUP4 DUP2 LT PUSH2 0x957 JUMPI POP PUSH2 0x77F DUP7 PUSH2 0x3A6D JUMP JUMPDEST SWAP6 PUSH2 0x78D PUSH1 0x40 MLOAD SWAP8 DUP9 PUSH2 0x23CB JUMP JUMPDEST DUP1 DUP8 MSTORE PUSH2 0x79C PUSH1 0x1F NOT SWAP2 PUSH2 0x3A6D JUMP JUMPDEST ADD DUP6 JUMPDEST DUP2 DUP2 LT PUSH2 0x90B JUMPI POP POP DUP5 JUMPDEST DUP4 DUP2 LT PUSH2 0x83F JUMPI POP POP POP POP PUSH1 0x40 MLOAD SWAP4 DUP1 DUP6 ADD SWAP2 DUP2 DUP7 MSTORE DUP5 MLOAD DUP1 SWAP4 MSTORE DUP2 PUSH1 0x40 DUP8 ADD SWAP6 ADD SWAP4 SWAP1 JUMPDEST DUP4 DUP3 LT PUSH2 0x7DC JUMPI DUP7 DUP7 SUB DUP8 RETURN JUMPDEST DUP5 MLOAD DUP1 MLOAD DUP8 MSTORE DUP1 DUP5 ADD MLOAD DUP8 DUP6 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP11 AND SWAP1 DUP9 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD MLOAD ISZERO ISZERO SWAP1 DUP9 ADD MSTORE DUP2 ADD MLOAD ISZERO ISZERO DUP7 DUP3 ADD MSTORE PUSH2 0x100 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP3 ADD SWAP4 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x7CF JUMP JUMPDEST DUP1 DUP7 SWAP9 SWAP6 SWAP7 MSTORE PUSH1 0x14 DUP6 MSTORE PUSH1 0x40 DUP9 KECCAK256 DUP10 PUSH1 0x2 DUP3 ADD SLOAD AND SWAP1 DUP4 DUP3 EQ PUSH2 0x871 JUMPI JUMPDEST POP POP PUSH2 0x868 SWAP1 PUSH2 0x2D68 JUMP JUMPDEST SWAP7 SWAP5 SWAP4 SWAP7 PUSH2 0x7AA JUMP JUMPDEST PUSH1 0x6 PUSH1 0x40 SWAP6 SWAP4 SWAP6 MLOAD SWAP2 PUSH2 0x883 DUP4 PUSH2 0x2379 JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 SWAP4 DUP5 DUP3 ADD SLOAD DUP11 DUP6 ADD MSTORE PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE ADD SLOAD PUSH1 0xFF SWAP1 DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO DUP9 DUP3 ADD MSTORE PUSH2 0x8D8 DUP4 DUP11 PUSH2 0x3A84 JUMP JUMPDEST MSTORE PUSH2 0x8E3 DUP3 DUP10 PUSH2 0x3A84 JUMP JUMPDEST POP DUP2 ADD DUP1 SWAP2 GT PUSH2 0x8F7 JUMPI SWAP2 PUSH2 0x868 DUP11 PUSH2 0x85D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP9 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP9 REVERT JUMPDEST SWAP8 DUP1 SWAP6 SWAP7 SWAP9 PUSH1 0x40 MLOAD PUSH2 0x91C DUP2 PUSH2 0x2379 JUMP JUMPDEST DUP11 DUP2 MSTORE DUP11 DUP4 DUP3 ADD MSTORE DUP11 PUSH1 0x40 DUP3 ADD MSTORE DUP11 PUSH1 0x60 DUP3 ADD MSTORE DUP11 PUSH1 0x80 DUP3 ADD MSTORE DUP11 PUSH1 0xA0 DUP3 ADD MSTORE DUP11 PUSH1 0xC0 DUP3 ADD MSTORE DUP11 DUP10 DUP3 ADD MSTORE DUP3 DUP3 DUP12 ADD ADD MSTORE ADD SWAP8 SWAP6 SWAP5 SWAP8 PUSH2 0x79F JUMP JUMPDEST DUP1 DUP7 SWAP9 SWAP6 SWAP7 MSTORE PUSH1 0x14 DUP6 MSTORE DUP2 DUP10 PUSH1 0x2 PUSH1 0x40 DUP12 KECCAK256 ADD SLOAD AND EQ PUSH2 0x984 JUMPI JUMPDEST PUSH2 0x97B SWAP1 PUSH2 0x2D68 JUMP JUMPDEST SWAP7 SWAP5 SWAP4 SWAP7 PUSH2 0x76E JUMP JUMPDEST SWAP6 PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x8F7 JUMPI SWAP6 PUSH2 0x972 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 MLOAD PUSH0 PUSH1 0x3 SLOAD PUSH2 0x9B7 DUP2 PUSH2 0x231A JUMP JUMPDEST DUP1 DUP5 MSTORE SWAP1 PUSH1 0x1 SWAP1 DUP2 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0xA3B JUMPI POP PUSH1 0x1 EQ PUSH2 0x9E1 JUMPI JUMPDEST PUSH2 0x53C DUP5 PUSH2 0x528 DUP2 DUP7 SUB DUP3 PUSH2 0x23CB JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 DUP2 MSTORE SWAP3 POP PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP3 DUP5 LT PUSH2 0xA23 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x528 DUP3 PUSH2 0x9D1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xA0B JUMP JUMPDEST PUSH1 0xFF NOT AND PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 ISZERO ISZERO PUSH1 0x5 SHL DUP6 ADD SWAP1 SWAP3 ADD SWAP3 POP PUSH2 0x528 SWAP2 POP DUP4 SWAP1 POP PUSH2 0x9D1 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH2 0xA7E PUSH2 0x2286 JUMP JUMPDEST SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP2 DUP3 SWAP1 SUB PUSH2 0xB89 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0xB0A DUP4 PUSH2 0x2395 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x1 DUP3 MSTORE PUSH1 0x12 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0xB75 JUMPI DUP1 PUSH1 0x1 PUSH2 0xB34 SWAP3 ADD PUSH1 0x12 SSTORE PUSH2 0x22D1 JUMP JUMPDEST SWAP4 SWAP1 SWAP4 PUSH2 0xB61 JUMPI MLOAD DUP4 SLOAD SWAP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 ISZERO ISZERO PUSH1 0xA0 SHL PUSH1 0xFF PUSH1 0xA0 SHL AND OR SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 SWAP1 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x617 PUSH2 0x28DB JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0xC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE RETURN JUMPDEST DUP3 PUSH1 0xA0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x504 JUMPI PUSH2 0xC25 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST SWAP1 PUSH1 0x64 CALLDATALOAD ISZERO ISZERO PUSH1 0x64 CALLDATALOAD SUB PUSH2 0x71A JUMPI PUSH1 0x84 CALLDATALOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x11 SLOAD AND CALLER DUP4 MSTORE PUSH1 0x17 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0x24 CALLDATALOAD DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SLOAD DUP2 EXTCODESIZE ISZERO PUSH2 0x148F JUMPI PUSH2 0xC8D DUP5 SWAP3 DUP4 SWAP3 PUSH1 0x40 MLOAD SWAP5 DUP6 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x758DDFDD PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD CALLER DUP13 PUSH1 0x4 DUP8 ADD PUSH2 0x295E JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xEBC JUMPI SWAP1 DUP4 SWAP2 PUSH2 0x147B JUMPI JUMPDEST POP POP DUP2 SWAP3 PUSH1 0x64 CALLDATALOAD PUSH2 0x13B2 JUMPI JUMPDEST POP PUSH2 0xCB7 PUSH1 0x24 CALLDATALOAD PUSH2 0x347A JUMP JUMPDEST SWAP3 PUSH2 0xCC4 PUSH1 0x44 CALLDATALOAD DUP6 PUSH2 0x27DB JUMP JUMPDEST POP PUSH2 0xCCD PUSH2 0x2869 JUMP JUMPDEST PUSH2 0xCD5 PUSH2 0x28DB JUMP JUMPDEST SWAP2 PUSH5 0x2540BE400 SWAP3 DUP1 DUP5 DUP2 MUL DIV DUP5 EQ DUP2 ISZERO OR ISZERO PUSH2 0x139E JUMPI DUP3 DUP5 DUP2 MUL DIV DUP5 EQ DUP4 ISZERO OR ISZERO PUSH2 0x139E JUMPI PUSH2 0xD1C PUSH1 0x44 CALLDATALOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0xD16 DUP8 DUP8 MUL DUP12 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x131D JUMPI PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 PUSH1 0x20 DUP3 PUSH1 0x24 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x114A JUMPI DUP9 SWAP3 PUSH2 0x12E0 JUMPI JUMPDEST POP PUSH5 0xE8D4A51000 SWAP1 DIV GT PUSH2 0x129B JUMPI JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x1136 JUMPI DUP8 SWAP1 DUP2 SWAP1 PUSH2 0x125B JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x24 DUP1 CALLDATALOAD PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP4 POP DUP4 SWAP2 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1136 JUMPI SWAP1 PUSH2 0x1E0 SWAP2 DUP9 SWAP2 PUSH2 0x1239 JUMPI JUMPDEST POP ADD MLOAD DUP7 JUMPDEST PUSH1 0x44 CALLDATALOAD DUP2 LT PUSH2 0xEC7 JUMPI PUSH1 0x10 SLOAD DUP9 SWAP1 DUP2 SWAP1 DUP10 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0xEA1 JUMPI DUP3 DUP1 SWAP2 PUSH1 0x44 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x24 CALLDATALOAD PUSH1 0x4 DUP5 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x24 DUP5 ADD MSTORE GAS CALL SWAP1 DUP2 ISZERO PUSH2 0xEBC JUMPI DUP4 SWAP2 PUSH2 0xEA5 JUMPI JUMPDEST POP POP PUSH1 0x11 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0xEA1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41B2819 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP3 SWAP1 DUP5 SWAP1 DUP3 SWAP1 PUSH2 0xE75 SWAP1 PUSH1 0x24 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0xE86 JUMPI POP RETURN JUMPDEST PUSH2 0xE8F SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x2DA JUMPI DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP POP REVERT JUMPDEST PUSH2 0xEAE SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0xEB9 JUMPI DUP2 DUP5 PUSH2 0xE33 JUMP JUMPDEST POP REVERT JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP8 PUSH8 0xDE0B6B3A7640000 PUSH2 0xEDD DUP9 DUP9 MUL DUP13 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x117D JUMPI PUSH8 0xDE0B6B3A7640000 DUP2 LT ISZERO PUSH2 0x115F JUMPI JUMPDEST PUSH1 0xB SWAP2 DUP3 SLOAD PUSH2 0xF2A PUSH2 0x669 PUSH2 0xF25 PUSH2 0xF1C PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x64 DUP2 DUP8 AND DIV AND PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x652 DUP8 PUSH2 0x3D88 JUMP JUMPDEST PUSH2 0x40A9 JUMP JUMPDEST SWAP1 DUP13 PUSH1 0x64 CALLDATALOAD ISZERO PUSH2 0x10C7 JUMPI POP POP DUP13 PUSH2 0xF5C JUMPI JUMPDEST POP POP POP POP PUSH2 0xF57 SWAP1 JUMPDEST PUSH2 0xF52 DUP11 PUSH1 0x24 CALLDATALOAD CALLER PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x2D68 JUMP JUMPDEST PUSH2 0xDDC JUMP JUMPDEST SWAP2 PUSH1 0x20 SWAP2 PUSH2 0xF80 PUSH2 0xFB8 SWAP5 PUSH2 0xF78 PUSH5 0xE8D4A51000 SWAP4 DUP5 SWAP3 PUSH2 0x2D76 JUMP JUMPDEST DIV DUP1 SWAP4 PUSH2 0x2D83 JUMP JUMPDEST SWAP5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP4 DIV SWAP3 SWAP2 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x64 DUP3 ADD SWAP1 JUMP JUMPDEST SUB DUP2 DUP14 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND GAS CALL DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH2 0x1078 JUMPI JUMPDEST POP PUSH1 0xD SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 DUP1 PUSH1 0x64 DUP2 ADD JUMPDEST SUB DUP2 DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND GAS CALL DUP1 ISZERO PUSH2 0x106D JUMPI PUSH2 0x102C JUMPI JUMPDEST DUP1 DUP1 DUP1 PUSH2 0xF3C JUMP JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1065 JUMPI JUMPDEST DUP2 PUSH2 0x1045 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1061 JUMPI SWAP1 PUSH2 0x105A PUSH2 0xF57 SWAP3 PUSH2 0x29BB JUMP JUMPDEST POP SWAP1 PUSH2 0x1024 JUMP JUMPDEST DUP9 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1038 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP12 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x10B4 JUMPI JUMPDEST DUP2 PUSH2 0x1091 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x10B0 JUMPI PUSH2 0x100A SWAP2 PUSH2 0x10A8 PUSH1 0x20 SWAP3 PUSH2 0x29BB JUMP JUMPDEST POP SWAP2 POP PUSH2 0xFD2 JUMP JUMPDEST DUP10 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1084 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP13 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP4 SWAP3 PUSH2 0x10D8 SWAP2 SWAP6 POP PUSH2 0x10DF SWAP3 PUSH2 0x2D76 JUMP JUMPDEST DUP1 SWAP3 PUSH2 0x2D83 JUMP JUMPDEST SWAP3 DUP13 PUSH2 0x10F3 JUMPI JUMPDEST POP POP POP POP PUSH2 0xF57 SWAP1 PUSH2 0xF45 JUMP JUMPDEST DUP3 DUP1 SWAP3 DUP2 SWAP3 DUP3 SWAP1 DUP3 ISZERO PUSH2 0x1155 JUMPI JUMPDEST PUSH1 0x60 SHR SWAP1 CALL ISZERO PUSH2 0x114A JUMPI PUSH1 0xD SLOAD DUP10 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ISZERO PUSH2 0x1141 JUMPI JUMPDEST CALL ISZERO PUSH2 0x1136 JUMPI DUP10 DUP9 DUP2 DUP1 PUSH2 0x10E6 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP10 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP PUSH2 0x8FC PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP11 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x8FC SWAP2 POP PUSH2 0x1101 JUMP JUMPDEST SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x1176 DUP9 DUP9 MUL DUP6 PUSH2 0x27DB JUMP JUMPDEST DIV SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x118A SWAP1 DUP9 DUP7 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH8 0xDE0B6B3A7640000 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x1225 JUMPI PUSH8 0xDE0B6B3A7640000 DUP2 LT PUSH2 0xEF7 JUMPI SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x11D1 DUP9 DUP9 MUL DUP6 PUSH2 0x27DB JUMP JUMPDEST DIV PUSH1 0x64 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH1 0x64 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x1225 JUMPI PUSH2 0x11F2 SWAP1 DUP9 DUP7 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH7 0x2386F26FC10000 SWAP1 DUP1 DUP3 DUP2 MUL DIV DUP3 EQ DUP2 ISZERO OR ISZERO PUSH2 0x1211 JUMPI MUL SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP12 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP12 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP11 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP11 REVERT JUMPDEST PUSH2 0x1255 SWAP2 POP RETURNDATASIZE DUP1 DUP11 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2A0A JUMP JUMPDEST DUP10 PUSH2 0xDD7 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1293 JUMPI JUMPDEST DUP2 PUSH2 0x1276 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x128F JUMPI DUP7 PUSH2 0x128A PUSH1 0x24 SWAP3 PUSH2 0x2996 JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST DUP7 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1269 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420656E6F7567687420455243323020746F207061790000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1315 JUMPI JUMPDEST DUP2 PUSH2 0x12FC PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1311 JUMPI MLOAD SWAP1 PUSH5 0xE8D4A51000 PUSH2 0xD58 JUMP JUMPDEST DUP8 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x12EF JUMP JUMPDEST PUSH2 0x132A SWAP1 DUP6 DUP4 MUL SWAP1 PUSH2 0x2802 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 MUL SWAP1 DUP1 DUP3 DIV PUSH8 0xDE0B6B3A7640000 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x138A JUMPI CALLVALUE LT ISZERO PUSH2 0xD67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x6E6F7420656E6F756768206D6F6E6579 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x12 SLOAD DUP2 LT ISZERO PUSH2 0x1442 JUMPI PUSH2 0x13C8 SWAP1 PUSH2 0x22D1 JUMP JUMPDEST POP PUSH1 0xFF PUSH1 0x40 MLOAD SWAP2 PUSH2 0x13D8 DUP4 PUSH2 0x2395 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP4 MSTORE PUSH1 0xA0 SHR AND ISZERO DUP1 ISZERO PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1406 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP4 PUSH2 0xCAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x10DC9E5C1D1BC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x10DC9E5C1D1BC81A59081A5B9D985B1A59 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH2 0x1484 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x504 JUMPI DUP2 DUP5 PUSH2 0xC9F JUMP JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x14D5 PUSH2 0x262F JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND SWAP1 SWAP2 SSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 DUP3 DUP1 LOG3 DUP1 RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x153B PUSH2 0x2270 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x1558 JUMPI DUP2 PUSH1 0x40 SWAP2 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x5 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 PUSH1 0x4 CALLDATALOAD DUP4 DUP2 GT PUSH2 0xB89 JUMPI PUSH2 0x15A4 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST SWAP1 PUSH2 0x15AD PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND CALLER EQ DUP1 ISZERO PUSH2 0x182B JUMPI JUMPDEST PUSH2 0x15CF SWAP1 PUSH2 0x2912 JUMP JUMPDEST DUP2 PUSH1 0x11 SLOAD AND SWAP3 PUSH1 0x40 MLOAD SWAP2 PUSH4 0x3E30DCF9 PUSH1 0xE2 SHL DUP4 MSTORE DUP7 DUP4 PUSH1 0x20 SWAP7 DUP8 PUSH1 0x4 DUP4 ADD MSTORE DUP2 DUP1 PUSH2 0x15FD PUSH1 0x24 DUP3 ADD DUP13 PUSH2 0x224B JUMP JUMPDEST SUB SWAP2 GAS STATICCALL SWAP3 DUP4 ISZERO PUSH2 0x1136 JUMPI DUP8 SWAP4 PUSH2 0x1772 JUMPI JUMPDEST POP POP DUP2 ADD MLOAD ISZERO PUSH2 0x172D JUMPI PUSH1 0x60 DUP2 ADD MLOAD TIMESTAMP GT PUSH2 0x16F2 JUMPI PUSH1 0xA0 PUSH1 0x80 DUP3 ADD MLOAD SWAP2 ADD MLOAD PUSH2 0x1637 DUP2 PUSH2 0x347A JUMP JUMPDEST DUP7 JUMPDEST DUP4 DUP2 LT PUSH2 0x16DE JUMPI POP POP DUP6 SWAP7 POP DUP3 PUSH1 0x10 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x128F JUMPI PUSH1 0x44 DUP8 SWAP3 DUP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 ADD MSTORE PUSH1 0x24 DUP5 ADD MSTORE GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x16D3 JUMPI DUP6 SWAP2 PUSH2 0x16BF JUMPI JUMPDEST POP POP PUSH1 0x11 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x16BA JUMPI PUSH2 0xE75 SWAP3 DUP5 SWAP3 DUP4 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0x41B2819 PUSH1 0xE5 SHL DUP5 MSTORE PUSH1 0x4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST POP POP POP REVERT JUMPDEST PUSH2 0x16C8 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x16BA JUMPI DUP4 DUP7 PUSH2 0x1683 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x16ED SWAP1 PUSH2 0xF52 DUP4 DUP6 DUP13 PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x1639 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x14995CD95C9D985D1A5BDB88195E1C1A5C9959 PUSH1 0x6A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207265736572766174696F6E206E756D626572000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP3 POP RETURNDATASIZE DUP1 DUP9 DUP4 RETURNDATACOPY PUSH2 0x1785 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 DUP6 DUP2 DUP4 SUB SLT PUSH2 0x1311 JUMPI DUP1 MLOAD SWAP1 DUP4 DUP3 GT PUSH2 0x1061 JUMPI ADD SWAP1 PUSH2 0x100 DUP3 DUP3 SUB SLT PUSH2 0x1311 JUMPI PUSH1 0x40 MLOAD SWAP3 PUSH2 0x17B5 DUP5 PUSH2 0x2379 JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 GT PUSH2 0x1061 JUMPI SWAP2 PUSH2 0x17CF DUP6 SWAP3 PUSH2 0x181F SWAP5 DUP4 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP5 MSTORE PUSH2 0x17DC DUP8 DUP3 ADD PUSH2 0x2996 JUMP JUMPDEST DUP8 DUP6 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x1814 PUSH1 0xC0 DUP3 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MSTORE ADD PUSH2 0x29BB JUMP JUMPDEST DUP3 DUP3 ADD MSTORE SWAP1 DUP8 DUP1 PUSH2 0x160F JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x15CF PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x15C6 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1877 PUSH2 0x2270 JUMP JUMPDEST SWAP1 PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 PUSH1 0x8 SLOAD AND CALLER EQ DUP1 ISZERO PUSH2 0x1903 JUMPI JUMPDEST PUSH2 0x189C SWAP1 PUSH2 0x2912 JUMP JUMPDEST PUSH2 0x18A5 DUP3 PUSH2 0x347A JUMP JUMPDEST DUP5 JUMPDEST DUP5 DUP2 LT PUSH2 0x18EF JUMPI POP POP DUP4 SWAP5 POP PUSH1 0x10 SLOAD AND SWAP2 DUP3 EXTCODESIZE ISZERO PUSH2 0x16BA JUMPI PUSH1 0x44 DUP5 SWAP3 DUP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x47F6682B PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x4 DUP6 ADD MSTORE PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0xE86 JUMPI POP RETURN JUMPDEST PUSH2 0x18FE SWAP1 PUSH2 0xF52 DUP4 DUP7 DUP11 PUSH2 0x2E6B JUMP JUMPDEST PUSH2 0x18A7 JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x189C PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x1893 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x24 SWAP1 DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT PUSH2 0xB89 JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0xB89 JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP1 DUP2 GT PUSH2 0xB89 JUMPI CALLDATASIZE DUP5 DUP3 DUP5 ADD ADD GT PUSH2 0xB89 JUMPI PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1AA8 JUMPI JUMPDEST PUSH2 0x199B SWAP1 PUSH2 0x2912 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD DUP4 MSTORE PUSH1 0x20 SWAP4 PUSH1 0x15 DUP6 MSTORE PUSH1 0x40 DUP5 KECCAK256 SWAP3 PUSH2 0x19B6 DUP5 SLOAD PUSH2 0x231A JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x1A65 JUMPI JUMPDEST POP DUP5 SWAP6 PUSH1 0x1F DUP5 GT PUSH1 0x1 EQ PUSH2 0x19FE JUMPI POP SWAP5 DUP5 SWAP6 DUP4 SWAP5 SWAP6 SWAP4 PUSH2 0x19F1 JUMPI JUMPDEST POP POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR SWAP1 SSTORE DUP1 RETURN JUMPDEST ADD ADD CALLDATALOAD SWAP1 POP DUP5 DUP1 DUP1 PUSH2 0x19DA JUMP JUMPDEST SWAP2 PUSH1 0x1F NOT DUP5 AND SWAP7 DUP6 DUP8 MSTORE DUP4 DUP8 KECCAK256 SWAP4 DUP8 SWAP1 JUMPDEST DUP10 DUP3 LT PUSH2 0x1A4B JUMPI POP POP DUP5 PUSH1 0x1 SWAP7 SWAP8 SWAP9 LT PUSH2 0x1A30 JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH0 NOT PUSH1 0xF8 DUP7 PUSH1 0x3 SHL AND SHR NOT SWAP3 ADD ADD CALLDATALOAD AND SWAP1 SSTORE DUP5 DUP1 DUP1 DUP1 PUSH2 0x1A24 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP5 SWAP8 DUP7 DUP4 SWAP6 SWAP7 DUP10 ADD ADD CALLDATALOAD DUP2 SSTORE ADD SWAP7 ADD SWAP3 ADD SWAP1 PUSH2 0x1A0F JUMP JUMPDEST DUP5 DUP7 MSTORE DUP7 DUP7 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP9 DUP7 LT PUSH2 0x1A9E JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x1A93 JUMPI POP PUSH2 0x19BF JUMP JUMPDEST DUP7 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1A86 JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x1A7D JUMP JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x199B PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x1992 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH2 0x1AF9 PUSH1 0x4 CALLDATALOAD PUSH2 0x265B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x504 JUMPI PUSH2 0x1B3C SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x24DE JUMP JUMPDEST DUP2 PUSH1 0x24 CALLDATALOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x11 SLOAD AND CALLER DUP4 MSTORE PUSH1 0x17 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP5 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SLOAD SWAP2 DUP2 EXTCODESIZE ISZERO PUSH2 0x148F JUMPI DUP4 PUSH2 0x1B93 SWAP6 PUSH1 0x40 MLOAD SWAP7 DUP8 SWAP6 DUP7 SWAP5 DUP6 SWAP4 PUSH4 0x758DDFDD PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x44 CALLDATALOAD SWAP2 CALLER SWAP1 PUSH1 0x4 DUP8 ADD PUSH2 0x295E JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0xE96 JUMPI PUSH2 0x1BA5 JUMPI POP DUP1 RETURN JUMPDEST PUSH2 0x5D4 SWAP1 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP CALLVALUE PUSH2 0x504 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x504 JUMPI PUSH1 0x40 PUSH2 0x100 SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0xFF DUP3 SLOAD SWAP3 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x2 DUP3 ADD SLOAD AND PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD SWAP2 PUSH1 0x6 PUSH1 0x5 DUP6 ADD SLOAD SWAP5 ADD SLOAD SWAP5 PUSH1 0x40 MLOAD SWAP9 DUP10 MSTORE PUSH1 0x20 DUP10 ADD MSTORE PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD MSTORE DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO SWAP1 DUP3 ADD MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x528 PUSH1 0x40 PUSH2 0x53C SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE KECCAK256 PUSH2 0x23EC JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH2 0x5D4 PUSH2 0x1C91 CALLDATASIZE PUSH2 0x229C JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x1C9F DUP5 PUSH2 0x23B0 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH2 0x5CF DUP4 DUP4 DUP4 PUSH2 0x3A98 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1CC6 PUSH2 0x262F JUMP JUMPDEST SELFBALANCE DUP1 ISZERO PUSH2 0x1D2C JUMPI PUSH1 0xC SLOAD DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH2 0x1CEB PUSH2 0x2695 JUMP JUMPDEST POP ISZERO PUSH2 0x1CF4 JUMPI DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x2A3930B739B332B9103330B4B632B217 PUSH1 0x81 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206574686572206C65667420746F20776974686472617700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1D8B PUSH2 0x2286 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x1DA7 JUMPI PUSH2 0x455 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x455 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DD9 PUSH2 0x2286 JUMP JUMPDEST SWAP1 DUP1 DUP5 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH2 0x1DF2 PUSH1 0x1 PUSH1 0x40 DUP7 KECCAK256 ADD SLOAD PUSH2 0x24FC JUMP JUMPDEST PUSH2 0x253C JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x40 MLOAD SWAP1 PUSH2 0x1E24 DUP3 PUSH2 0x2395 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND DUP1 DUP5 MSTORE PUSH1 0xA0 SWAP3 SWAP1 SWAP3 SHR PUSH1 0x20 DUP5 ADD MSTORE SWAP2 SWAP3 SWAP1 ISZERO PUSH2 0x1E82 JUMPI JUMPDEST POP PUSH2 0x2710 PUSH2 0x1E64 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0x20 DUP6 ADD MLOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x27DB JUMP JUMPDEST SWAP3 MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DIV PUSH1 0x20 DUP3 ADD MSTORE RETURN JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH2 0x1E91 DUP3 PUSH2 0x2395 JUMP JUMPDEST SLOAD DUP3 DUP2 AND DUP3 MSTORE PUSH1 0xA0 SHR PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP3 PUSH2 0x1E47 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x12 SLOAD DUP3 LT ISZERO PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH2 0x1ED1 DUP4 PUSH2 0x22D1 JUMP JUMPDEST POP SLOAD DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH1 0xA0 SWAP2 SWAP1 SWAP2 SHR PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x1 PUSH1 0x40 PUSH1 0x20 SWAP3 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH1 0x9 DUP5 MSTORE KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH2 0x5D4 PUSH2 0x1F5C CALLDATASIZE PUSH2 0x229C JUMP JUMPDEST SWAP2 PUSH2 0x3A98 JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SELFBALANCE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH2 0x1F98 PUSH2 0x2270 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x1FA4 DUP2 PUSH2 0x265B JUMP JUMPDEST CALLER ISZERO ISZERO DUP1 PUSH2 0x204E JUMPI JUMPDEST DUP1 PUSH2 0x2023 JUMPI JUMPDEST PUSH2 0x200B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 DUP3 SWAP2 DUP5 SWAP2 AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP7 DUP1 LOG4 DUP3 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP7 KECCAK256 CALLER DUP8 MSTORE SWAP1 SWAP2 MSTORE DUP5 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1FB3 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO PUSH2 0x1FAD JUMP JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x2082 DUP2 PUSH2 0x265B JUMP JUMPDEST POP DUP2 MSTORE PUSH1 0x6 DUP3 MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP2 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 CALLVALUE PUSH2 0x2DA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2DA JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x2 SLOAD PUSH2 0x20C0 DUP2 PUSH2 0x231A JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0x2145 JUMPI POP PUSH1 0x1 EQ PUSH2 0x20EA JUMPI JUMPDEST PUSH2 0x53C DUP6 PUSH2 0x528 DUP2 DUP8 SUB DUP3 PUSH2 0x23CB JUMP JUMPDEST SWAP3 POP PUSH1 0x2 DUP4 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE JUMPDEST DUP3 DUP5 LT PUSH2 0x212D JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x528 DUP3 PUSH2 0x53C PUSH2 0x20DA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x2112 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x53C SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x528 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x20DA JUMP JUMPDEST DUP4 SWAP1 CALLVALUE PUSH2 0x504 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x504 JUMPI PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 AND DUP1 SWAP2 SUB PUSH2 0xB89 JUMPI PUSH1 0x20 SWAP3 POP PUSH4 0x152A902D PUSH1 0xE1 SHL DUP2 EQ DUP1 ISZERO DUP1 PUSH2 0x21B4 JUMPI JUMPDEST POP ISZERO ISZERO DUP3 MSTORE POP RETURN JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP4 EQ SWAP3 DUP4 ISZERO PUSH2 0x21D0 JUMPI JUMPDEST POP POP POP DUP1 DUP5 PUSH2 0x21AC JUMP JUMPDEST PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP4 POP SWAP1 SWAP2 DUP4 ISZERO PUSH2 0x2219 JUMPI JUMPDEST DUP4 ISZERO PUSH2 0x21F7 JUMPI JUMPDEST POP POP POP DUP4 DUP1 DUP1 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP SWAP1 PUSH2 0x2208 JUMPI JUMPDEST POP DUP4 DUP1 DUP1 PUSH2 0x21EC JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x21FF JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP3 EQ SWAP4 POP PUSH2 0x21E5 JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT PUSH2 0x223B JUMPI POP POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x222C JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x2264 DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 SLOAD DUP2 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x12 PUSH0 MSTORE PUSH32 0xBB8A6A4669BA250D26CD7A459ECA9D215F8307E33AEBE50379BC5A3617EC3444 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x2348 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x2334 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x2329 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x100 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2365 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH0 DUP3 SLOAD SWAP3 PUSH2 0x23FF DUP5 PUSH2 0x231A JUMP JUMPDEST SWAP1 DUP2 DUP5 MSTORE PUSH1 0x1 SWAP5 DUP6 DUP2 AND SWAP1 DUP2 PUSH0 EQ PUSH2 0x246A JUMPI POP PUSH1 0x1 EQ PUSH2 0x242A JUMPI JUMPDEST POP POP PUSH2 0x2428 SWAP3 POP SUB DUP4 PUSH2 0x23CB JUMP JUMPDEST JUMP JUMPDEST SWAP1 SWAP4 SWAP2 POP PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 PUSH0 KECCAK256 SWAP4 PUSH0 SWAP2 JUMPDEST DUP2 DUP4 LT PUSH2 0x2452 JUMPI POP POP PUSH2 0x2428 SWAP4 POP DUP3 ADD ADD PUSH0 DUP1 PUSH2 0x241A JUMP JUMPDEST DUP6 SLOAD DUP9 DUP5 ADD DUP6 ADD MSTORE SWAP5 DUP6 ADD SWAP5 DUP8 SWAP5 POP SWAP2 DUP4 ADD SWAP2 PUSH2 0x243A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2428 SWAP5 POP PUSH1 0x20 SWAP3 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD PUSH0 DUP1 PUSH2 0x241A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP3 PUSH2 0x24B4 DUP3 PUSH2 0x248D JUMP JUMPDEST SWAP2 PUSH2 0x24C2 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x23CB JUMP JUMPDEST DUP3 SWAP5 DUP2 DUP5 MSTORE DUP2 DUP4 ADD GT PUSH2 0x71A JUMPI DUP3 DUP2 PUSH1 0x20 SWAP4 DUP5 PUSH0 SWAP7 ADD CALLDATACOPY ADD ADD MSTORE JUMP JUMPDEST SWAP1 DUP1 PUSH1 0x1F DUP4 ADD SLT ISZERO PUSH2 0x71A JUMPI DUP2 PUSH1 0x20 PUSH2 0x24F9 SWAP4 CALLDATALOAD SWAP2 ADD PUSH2 0x24A8 JUMP JUMPDEST SWAP1 JUMP JUMPDEST DUP1 PUSH0 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 CALLER PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND ISZERO PUSH2 0x251E JUMPI POP JUMP JUMPDEST PUSH1 0x44 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP3 MSTORE CALLER PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE REVERT JUMPDEST SWAP1 PUSH0 SWAP2 DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP5 KECCAK256 SLOAD AND ISZERO PUSH0 EQ PUSH2 0x25B5 JUMPI DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D CALLER SWAP4 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST SWAP1 PUSH0 SWAP2 DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP5 KECCAK256 SLOAD AND PUSH0 EQ PUSH2 0x25B5 JUMPI DUP1 DUP4 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP3 DUP5 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH1 0xFF NOT DUP2 SLOAD AND SWAP1 SSTORE PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B CALLER SWAP4 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x2643 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x267D JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x24 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 DUP3 ADD MSTORE REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x26BF JUMPI RETURNDATASIZE SWAP1 PUSH2 0x26A6 DUP3 PUSH2 0x248D JUMP JUMPDEST SWAP2 PUSH2 0x26B4 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x23CB JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP1 EXTCODESIZE PUSH2 0x26D3 JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2715 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 SWAP3 AND SWAP5 PUSH1 0x40 MLOAD SWAP4 DUP5 SWAP4 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP7 DUP8 DUP7 MSTORE CALLER PUSH1 0x4 DUP8 ADD MSTORE AND PUSH1 0x24 DUP6 ADD MSTORE PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x80 PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP1 PUSH1 0x20 DUP2 PUSH0 SWAP4 DUP2 DUP6 DUP9 GAS CALL SWAP1 DUP3 SWAP1 DUP3 PUSH2 0x2793 JUMPI JUMPDEST POP POP PUSH2 0x2762 JUMPI DUP3 PUSH2 0x2739 PUSH2 0x2695 JUMP JUMPDEST DUP1 MLOAD SWAP2 SWAP1 DUP3 PUSH2 0x275B JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SUB PUSH2 0x277B JUMPI POP PUSH0 DUP1 DUP1 DUP1 PUSH2 0x26CD JUMP JUMPDEST PUSH1 0x24 SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0x32505749 PUSH1 0xE1 SHL DUP3 MSTORE PUSH1 0x4 DUP3 ADD MSTORE REVERT JUMPDEST SWAP1 SWAP2 SWAP3 POP PUSH1 0x20 DUP2 RETURNDATASIZE DUP3 GT PUSH2 0x27D3 JUMPI JUMPDEST DUP2 PUSH2 0x27AF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x504 JUMPI MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND DUP3 SUB PUSH2 0x2DA JUMPI POP SWAP1 PUSH0 DUP1 PUSH2 0x272A JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27A2 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x27EE JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x280C JUMPI DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST MLOAD SWAP1 PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST SWAP1 DUP2 PUSH1 0xA0 SWAP2 SUB SLT PUSH2 0x71A JUMPI PUSH2 0x284B DUP2 PUSH2 0x2820 JUMP JUMPDEST SWAP2 PUSH1 0x20 DUP3 ADD MLOAD SWAP2 PUSH1 0x40 DUP2 ADD MLOAD SWAP2 PUSH2 0x24F9 PUSH1 0x80 PUSH1 0x60 DUP5 ADD MLOAD SWAP4 ADD PUSH2 0x2820 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x3FABE5A3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 PUSH1 0xA0 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x28A0 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x28C1 SWAP2 POP PUSH1 0xA0 RETURNDATASIZE DUP2 GT PUSH2 0x28C9 JUMPI JUMPDEST PUSH2 0x28B9 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2837 JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x28AF JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x3FABE5A3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 PUSH1 0xA0 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x28A0 JUMPI POP SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2919 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C792061646D696E732063616E20646F2074686174000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP2 SWAP6 SWAP5 SWAP4 SWAP1 SWAP3 PUSH2 0x2978 PUSH1 0x80 SWAP5 PUSH1 0xA0 DUP6 MSTORE PUSH1 0xA0 DUP6 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP8 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST MLOAD SWAP1 DUP2 ISZERO ISZERO DUP3 SUB PUSH2 0x71A JUMPI JUMP JUMPDEST DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x71A JUMPI DUP1 MLOAD PUSH2 0x29DE DUP2 PUSH2 0x248D JUMP JUMPDEST SWAP3 PUSH2 0x29EC PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x23CB JUMP JUMPDEST DUP2 DUP5 MSTORE PUSH1 0x20 DUP3 DUP5 ADD ADD GT PUSH2 0x71A JUMPI PUSH2 0x24F9 SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x71A JUMPI ADD PUSH2 0x2C0 SWAP3 DUP4 DUP3 DUP5 SUB SLT PUSH2 0x71A JUMPI PUSH1 0x40 DUP1 MLOAD SWAP5 DUP6 ADD DUP6 DUP2 LT DUP4 DUP3 GT OR PUSH2 0x2365 JUMPI DUP2 MSTORE DUP3 MLOAD DUP6 MSTORE PUSH2 0x2A59 PUSH1 0x20 DUP5 ADD PUSH2 0x29AA JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2A69 DUP2 DUP5 ADD PUSH2 0x29AA JUMP JUMPDEST DUP2 DUP7 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x2A97 PUSH1 0xC0 DUP5 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x100 SWAP4 PUSH2 0x2AB5 DUP6 DUP6 ADD PUSH2 0x29BB JUMP JUMPDEST DUP6 DUP8 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 DUP6 ADD MLOAD DUP5 DUP9 ADD MSTORE PUSH2 0x140 DUP1 DUP7 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH2 0x160 PUSH2 0x2ADE DUP2 DUP9 ADD PUSH2 0x29BB JUMP JUMPDEST DUP2 DUP11 ADD MSTORE PUSH2 0x180 SWAP1 DUP2 DUP9 ADD MLOAD DUP3 DUP12 ADD MSTORE PUSH2 0x1A0 SWAP3 DUP4 DUP10 ADD MLOAD DUP5 DUP13 ADD MSTORE PUSH2 0x1C0 SWAP8 DUP9 DUP11 ADD MLOAD DUP10 DUP14 ADD MSTORE PUSH2 0x1E0 SWAP11 DUP13 DUP13 DUP1 DUP14 ADD MLOAD SWAP2 ADD MSTORE DUP13 DUP12 PUSH2 0x2B23 PUSH2 0x200 DUP1 SWAP3 ADD PUSH2 0x29BB JUMP JUMPDEST SWAP2 ADD MSTORE DUP13 PUSH2 0x220 PUSH2 0x2B35 DUP2 DUP15 ADD PUSH2 0x29BB JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x240 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B55 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x260 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B75 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x280 DUP1 DUP13 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI PUSH2 0x2B95 DUP16 SWAP3 DUP12 SWAP1 DUP16 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE PUSH2 0x2A0 SWAP11 DUP12 DUP2 ADD MLOAD SWAP1 DUP9 DUP3 GT PUSH2 0x71A JUMPI ADD SWAP9 DUP13 DUP11 DUP11 SUB SLT PUSH2 0x71A JUMPI DUP1 MLOAD SWAP13 DUP14 ADD DUP14 DUP2 LT DUP10 DUP3 GT OR PUSH2 0x2365 JUMPI DUP2 MSTORE DUP10 MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI DUP10 PUSH2 0x2BDA SWAP2 DUP13 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP14 MSTORE PUSH1 0x20 DUP11 ADD MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI PUSH1 0x20 PUSH2 0x2BF8 DUP16 SWAP3 DUP13 SWAP1 DUP15 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP2 ADD MSTORE DUP1 DUP11 ADD MLOAD DUP9 DUP2 GT PUSH2 0x71A JUMPI DUP10 PUSH2 0x2C12 SWAP2 DUP13 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP14 ADD MSTORE PUSH1 0x60 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C2E SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x60 DUP14 ADD MSTORE PUSH1 0x80 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C4B SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x80 DUP14 ADD MSTORE PUSH1 0xA0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C68 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xA0 DUP14 ADD MSTORE PUSH1 0xC0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2C85 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xC0 DUP14 ADD MSTORE PUSH1 0xE0 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2CA2 SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xE0 DUP14 ADD MSTORE DUP1 DUP10 ADD MLOAD DUP8 DUP2 GT PUSH2 0x71A JUMPI DUP9 PUSH2 0x2CBE SWAP2 DUP12 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP13 ADD MSTORE DUP1 DUP9 ADD MLOAD DUP7 DUP2 GT PUSH2 0x71A JUMPI DUP8 PUSH2 0x2CD9 SWAP2 DUP11 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP12 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP6 DUP2 GT PUSH2 0x71A JUMPI DUP7 PUSH2 0x2CF4 SWAP2 DUP10 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP11 ADD MSTORE DUP1 DUP7 ADD MLOAD DUP5 DUP2 GT PUSH2 0x71A JUMPI DUP6 PUSH2 0x2D0F SWAP2 DUP9 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP10 ADD MSTORE DUP1 DUP6 ADD MLOAD DUP4 DUP2 GT PUSH2 0x71A JUMPI DUP5 PUSH2 0x2D2A SWAP2 DUP8 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP9 ADD MSTORE DUP1 DUP5 ADD MLOAD DUP3 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2D45 SWAP2 DUP7 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP8 ADD MSTORE DUP4 DUP4 ADD MLOAD SWAP1 DUP2 GT PUSH2 0x71A JUMPI PUSH2 0x2D5E SWAP3 ADD PUSH2 0x29C8 JUMP JUMPDEST SWAP1 DUP4 ADD MSTORE DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH0 NOT DUP2 EQ PUSH2 0x27EE JUMPI PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x27EE JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x27EE JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x71A JUMPI ADD PUSH2 0x100 DUP2 DUP4 SUB SLT PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD SWAP3 PUSH2 0x2DC6 DUP5 PUSH2 0x2379 JUMP JUMPDEST DUP2 MLOAD DUP2 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2DDB SWAP2 DUP5 ADD PUSH2 0x29C8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x71A JUMPI PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 DUP2 GT PUSH2 0x71A JUMPI DUP4 PUSH2 0x2E1C SWAP2 DUP5 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP3 ADD MLOAD SWAP1 DUP2 GT PUSH2 0x71A JUMPI PUSH1 0xE0 SWAP3 PUSH2 0x2E3B SWAP2 DUP4 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2E4C PUSH1 0xC0 DUP3 ADD PUSH2 0x29BB JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MSTORE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x71A JUMPI PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST SWAP1 SWAP2 PUSH1 0xA SLOAD PUSH0 PUSH1 0x40 SWAP3 DUP4 MLOAD SWAP2 PUSH2 0x2E80 DUP4 PUSH2 0x23B0 JUMP JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP7 DUP8 ISZERO PUSH2 0x32FC JUMPI DUP6 DUP4 MSTORE PUSH1 0x4 SWAP4 PUSH1 0x20 SWAP6 DUP6 DUP8 MSTORE DUP4 DUP10 DUP7 KECCAK256 SLOAD AND SWAP3 DUP4 ISZERO ISZERO DUP1 PUSH2 0x32CB JUMPI JUMPDEST DUP12 DUP8 MSTORE PUSH1 0x5 DUP10 MSTORE DUP11 DUP8 KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD SWAP1 SSTORE DUP10 DUP8 MSTORE DUP8 DUP10 MSTORE DUP10 DUP13 DUP13 DUP10 KECCAK256 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL SWAP8 DUP3 DUP10 DUP3 SLOAD AND OR SWAP1 SSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP11 DUP1 LOG4 PUSH2 0x32B4 JUMPI EXTCODESIZE PUSH2 0x31BD JUMPI JUMPDEST POP DUP5 DUP5 DUP5 PUSH1 0x10 SLOAD AND DUP11 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0x5FC0CE1 PUSH1 0xE5 SHL DUP3 MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x31B3 JUMPI PUSH2 0x2FCE DUP13 DUP12 PUSH2 0x2FBE PUSH1 0x22 DUP14 PUSH2 0x2F5B PUSH2 0x2F55 DUP16 SWAP10 DUP15 SWAP10 DUP11 SWAP2 PUSH2 0x3191 JUMPI JUMPDEST POP MLOAD SWAP7 PUSH2 0x3314 JUMP JUMPDEST SWAP2 PUSH2 0x3314 JUMP JUMPDEST SWAP4 MLOAD SWAP4 DUP5 SWAP2 DUP10 PUSH2 0x2F74 DUP2 DUP6 ADD SWAP9 DUP10 DUP2 MLOAD SWAP4 DUP5 SWAP3 ADD PUSH2 0x222A JUMP JUMPDEST DUP4 ADD SWAP1 PUSH1 0x1D PUSH1 0xF9 SHL SWAP2 DUP3 DUP13 DUP3 ADD MSTORE PUSH2 0x2F96 DUP13 DUP4 MLOAD SWAP4 DUP5 SWAP2 PUSH1 0x21 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST ADD SWAP1 PUSH1 0x21 DUP3 ADD MSTORE PUSH2 0x2FAF DUP3 MLOAD DUP1 SWAP4 DUP13 DUP8 DUP6 ADD SWAP2 ADD PUSH2 0x222A JUMP JUMPDEST ADD SUB PUSH1 0x2 DUP2 ADD DUP5 MSTORE ADD DUP3 PUSH2 0x23CB JUMP JUMPDEST DUP13 MLOAD SWAP3 DUP4 SWAP3 DUP4 SWAP3 MLOAD SWAP3 DUP4 SWAP2 PUSH2 0x222A JUMP JUMPDEST DUP2 ADD SUB SWAP1 PUSH1 0x2 GAS STATICCALL ISZERO PUSH2 0x3187 JUMPI DUP8 SWAP2 DUP11 DUP9 SWAP3 DUP7 MLOAD DUP13 DUP7 MLOAD SWAP5 PUSH2 0x2FEF DUP7 PUSH2 0x2379 JUMP JUMPDEST DUP7 DUP7 MSTORE DUP12 DUP7 ADD SWAP5 DUP6 MSTORE DUP8 DUP7 ADD SWAP2 DUP3 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 DUP4 MSTORE PUSH1 0x80 DUP7 ADD SWAP4 DUP5 MSTORE PUSH1 0xA0 DUP7 ADD SWAP5 TIMESTAMP DUP7 MSTORE PUSH1 0xC0 DUP8 ADD SWAP9 DUP12 DUP11 MSTORE DUP14 PUSH1 0xE0 DUP10 ADD SWAP10 PUSH1 0x1 DUP12 MSTORE DUP14 MSTORE PUSH1 0x14 SWAP1 MSTORE DUP12 KECCAK256 SWAP7 MLOAD DUP8 SSTORE MLOAD PUSH1 0x1 DUP8 ADD SSTORE DUP9 PUSH1 0x2 DUP8 ADD SWAP3 MLOAD AND SWAP1 DUP3 SLOAD AND OR SWAP1 SSTORE MLOAD PUSH1 0x3 DUP5 ADD SSTORE MLOAD DUP8 DUP4 ADD SSTORE MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 ADD SWAP2 MLOAD ISZERO ISZERO PUSH2 0x3075 SWAP1 DUP4 SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD ISZERO ISZERO DUP2 SLOAD SWAP1 PUSH1 0x8 SHL PUSH2 0xFF00 AND SWAP1 PUSH2 0xFF00 NOT AND OR SWAP1 SSTORE PUSH1 0x10 SLOAD AND DUP1 EXTCODESIZE ISZERO PUSH2 0x504 JUMPI DUP2 DUP1 SWAP2 PUSH1 0x44 DUP9 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0xB382AED PUSH1 0xE4 SHL DUP4 MSTORE DUP14 DUP10 DUP5 ADD MSTORE DUP11 PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x317D JUMPI PUSH2 0x316E JUMPI JUMPDEST POP DUP4 DUP2 MSTORE PUSH1 0x16 DUP4 MSTORE DUP7 DUP6 DUP3 KECCAK256 SSTORE DUP6 DUP2 MSTORE PUSH1 0x17 DUP4 MSTORE DUP5 DUP2 KECCAK256 DUP8 DUP3 MSTORE DUP4 MSTORE DUP5 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x315B JUMPI DUP7 DUP3 MSTORE PUSH1 0x17 DUP5 MSTORE DUP6 DUP3 KECCAK256 DUP9 DUP4 MSTORE DUP5 MSTORE DUP6 DUP3 KECCAK256 SSTORE PUSH1 0xA SLOAD SWAP2 PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x3148 JUMPI POP POP PUSH1 0xA SSTORE DUP3 MLOAD SWAP5 DUP6 MSTORE DUP5 ADD MSTORE DUP3 ADD MSTORE PUSH32 0x756915DC79FBE0544CDE2132B389579561B584214B5BA2644E80D0BBB565047C SWAP1 PUSH1 0x60 SWAP1 LOG1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP PUSH1 0x11 PUSH1 0x24 SWAP3 PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE MSTORE REVERT JUMPDEST PUSH2 0x3177 SWAP1 PUSH2 0x2352 JUMP JUMPDEST PUSH0 PUSH2 0x30C3 JUMP JUMPDEST DUP7 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP8 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH2 0x31AD SWAP2 POP RETURNDATASIZE DUP1 DUP13 DUP4 RETURNDATACOPY PUSH2 0x31A5 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2D90 JUMP JUMPDEST PUSH0 PUSH2 0x2F4D JUMP JUMPDEST DUP10 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP5 PUSH2 0x3200 DUP8 DUP10 SWAP8 DUP13 DUP5 SWAP15 SWAP11 SWAP16 SWAP12 DUP10 DUP15 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER SWAP1 DUP6 ADD MSTORE DUP5 PUSH1 0x24 DUP6 ADD MSTORE PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x80 PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD SWAP1 PUSH2 0x224B JUMP JUMPDEST SUB SWAP3 GAS CALL DUP7 SWAP2 DUP2 PUSH2 0x3274 JUMPI JUMPDEST POP PUSH2 0x3242 JUMPI DUP13 DUP13 DUP13 DUP13 PUSH2 0x321D PUSH2 0x2695 JUMP JUMPDEST DUP1 MLOAD SWAP5 DUP6 PUSH2 0x323C JUMPI POP POP MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH1 0x24 SWAP2 POP REVERT JUMPDEST DUP6 SWAP3 POP ADD REVERT JUMPDEST SWAP8 SWAP12 SWAP7 SWAP11 SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SUB PUSH2 0x325D JUMPI PUSH0 PUSH2 0x2F10 JUMP JUMPDEST DUP8 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP7 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 POP DUP14 DUP2 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x32AD JUMPI JUMPDEST PUSH2 0x328C DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x128F JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x128F JUMPI SWAP1 PUSH0 PUSH2 0x320C JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3282 JUMP JUMPDEST DUP10 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP9 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH0 DUP11 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP8 MSTORE PUSH1 0x5 DUP10 MSTORE DUP11 DUP8 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE PUSH2 0x2EB1 JUMP JUMPDEST DUP7 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 PUSH0 SWAP2 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP1 DUP3 LT ISZERO PUSH2 0x346C JUMPI JUMPDEST POP PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP1 DUP4 LT ISZERO PUSH2 0x345D JUMPI JUMPDEST POP PUSH7 0x2386F26FC10000 DUP1 DUP4 LT ISZERO PUSH2 0x344E JUMPI JUMPDEST POP PUSH4 0x5F5E100 DUP1 DUP4 LT ISZERO PUSH2 0x343F JUMPI JUMPDEST POP PUSH2 0x2710 DUP1 DUP4 LT ISZERO PUSH2 0x3430 JUMPI JUMPDEST POP PUSH1 0x64 DUP3 LT ISZERO PUSH2 0x3420 JUMPI JUMPDEST PUSH1 0xA DUP1 SWAP3 LT ISZERO PUSH2 0x3416 JUMPI JUMPDEST PUSH1 0x1 SWAP1 DUP2 PUSH1 0x21 DUP2 DUP7 ADD SWAP6 PUSH2 0x33AC DUP8 PUSH2 0x248D JUMP JUMPDEST SWAP7 PUSH2 0x33BA PUSH1 0x40 MLOAD SWAP9 DUP10 PUSH2 0x23CB JUMP JUMPDEST DUP1 DUP9 MSTORE PUSH2 0x33C9 PUSH1 0x1F NOT SWAP2 PUSH2 0x248D JUMP JUMPDEST ADD CALLDATASIZE PUSH1 0x20 DUP10 ADD CALLDATACOPY DUP7 ADD ADD SWAP1 JUMPDEST PUSH2 0x33E1 JUMPI JUMPDEST POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 NOT ADD SWAP1 DUP4 SWAP1 PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP3 DUP3 MOD BYTE DUP4 MSTORE8 DIV SWAP2 DUP3 ISZERO PUSH2 0x3411 JUMPI SWAP2 SWAP1 DUP3 PUSH2 0x33D5 JUMP JUMPDEST PUSH2 0x33DA JUMP JUMPDEST SWAP2 PUSH1 0x1 ADD SWAP2 PUSH2 0x3399 JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x64 PUSH1 0x2 SWAP2 DIV SWAP2 ADD SWAP2 PUSH2 0x338E JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3383 JUMP JUMPDEST PUSH1 0x8 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3376 JUMP JUMPDEST PUSH1 0x10 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x20 SWAP2 SWAP4 SWAP3 DIV SWAP2 ADD SWAP2 PUSH0 PUSH2 0x3355 JUMP JUMPDEST PUSH1 0x40 SWAP4 POP DUP2 DIV SWAP2 POP PUSH0 PUSH2 0x333C JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x4 SWAP1 DUP3 SWAP1 DUP8 AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x3525 JUMPI JUMPDEST POP PUSH1 0x24 PUSH0 SWAP3 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 DUP5 SWAP3 PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP5 MSTORE PUSH1 0x4 DUP5 ADD MSTORE AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x350C JUMPI JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD SWAP1 PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x34F2 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x1A0 DUP2 ADD MLOAD TIMESTAMP LT PUSH2 0x3502 JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x180 SWAP2 POP ADD MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x351F SWAP2 RETURNDATASIZE DUP1 SWAP2 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x34DD JUMP JUMPDEST SWAP1 PUSH1 0x20 DUP3 RETURNDATASIZE DUP3 GT PUSH2 0x355C JUMPI JUMPDEST DUP2 PUSH2 0x353E PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x2DA JUMPI POP SWAP1 PUSH1 0x24 PUSH2 0x3554 PUSH0 SWAP4 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP3 POP PUSH2 0x34B0 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x3531 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3A10 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x3598 DUP2 PUSH2 0x2379 JUMP JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0xE0 PUSH1 0xFF PUSH1 0x6 PUSH1 0x1 DUP6 ADD SLOAD SWAP5 PUSH1 0x20 DUP6 ADD SWAP6 DUP7 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x2 DUP3 ADD SLOAD AND PUSH1 0x40 DUP7 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE ADD SLOAD DUP2 DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x8 SHR AND ISZERO ISZERO SWAP2 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x10 SLOAD AND SWAP1 PUSH1 0x40 MLOAD SWAP1 PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x20 DUP3 PUSH1 0x4 DUP2 DUP7 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP3 PUSH2 0x39D3 JUMPI JUMPDEST POP MLOAD PUSH1 0x40 MLOAD PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x24 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x39B9 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 PUSH1 0xC0 DUP2 ADD MLOAD ISZERO PUSH2 0x399B JUMPI JUMPDEST DUP4 PUSH0 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH2 0x3683 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH2 0x231A JUMP JUMPDEST ISZERO PUSH2 0x369E JUMPI POP POP POP PUSH0 MSTORE PUSH1 0x15 PUSH1 0x20 MSTORE PUSH2 0x24F9 PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x23EC JUMP JUMPDEST PUSH2 0x1C0 DUP2 SWAP5 SWAP3 SWAP4 SWAP5 ADD MLOAD SWAP4 PUSH1 0x4 PUSH0 PUSH2 0x260 DUP5 ADD MLOAD SWAP3 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0x5FC0CE1 PUSH1 0xE5 SHL DUP3 MSTORE GAS STATICCALL DUP1 ISZERO PUSH2 0x28D0 JUMPI PUSH1 0x20 SWAP2 PUSH0 SWAP2 PUSH2 0x3981 JUMPI JUMPDEST POP ADD MLOAD PUSH2 0x2A0 DUP4 ADD MLOAD SWAP1 PUSH2 0x200 DUP5 ADD MLOAD ISZERO ISZERO SWAP3 PUSH2 0x220 DUP6 ADD MLOAD ISZERO ISZERO SWAP5 PUSH2 0x100 ADD MLOAD ISZERO ISZERO SWAP6 PUSH1 0x40 MLOAD SWAP9 PUSH2 0x3707 DUP11 PUSH2 0x2379 JUMP JUMPDEST DUP10 MSTORE PUSH1 0x20 DUP10 ADD MSTORE PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 SWAP1 SUB PUSH1 0x13 SLOAD AND SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP4 DUP2 SWAP3 PUSH4 0x3605E0D PUSH1 0xE5 SHL DUP4 MSTORE ADDRESS PUSH1 0x4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD PUSH1 0x60 SWAP1 MSTORE DUP2 MLOAD PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x84 DUP5 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0xA4 DUP5 ADD PUSH2 0x100 SWAP1 MSTORE PUSH2 0x164 DUP5 ADD PUSH2 0x3786 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC4 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x63 NOT DUP6 DUP4 SUB ADD PUSH1 0xE4 DUP7 ADD MSTORE DUP1 MLOAD PUSH2 0x1E0 DUP1 DUP5 MSTORE DUP4 ADD PUSH2 0x37B4 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE PUSH2 0x37CB SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x37E2 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x37F9 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x3810 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x3827 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x383E SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x3855 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MLOAD SWAP1 DUP4 DUP2 SUB PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x386E SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x120 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x3887 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x140 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38A0 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x160 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38B9 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x180 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38D2 SWAP2 PUSH2 0x224B JUMP JUMPDEST PUSH2 0x1A0 SWAP1 DUP2 DUP4 ADD MLOAD SWAP2 DUP5 DUP3 SUB SWAP1 DUP6 ADD MSTORE PUSH2 0x38EB SWAP2 PUSH2 0x224B JUMP JUMPDEST SWAP1 PUSH2 0x1C0 ADD MLOAD SWAP2 DUP1 DUP3 SUB SWAP1 PUSH2 0x1C0 ADD MSTORE PUSH2 0x3904 SWAP2 PUSH2 0x224B JUMP JUMPDEST SWAP2 PUSH1 0xA0 DUP2 ADD MLOAD ISZERO ISZERO PUSH2 0x104 DUP6 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD ISZERO ISZERO PUSH2 0x124 DUP6 ADD MSTORE PUSH1 0xE0 ADD MLOAD ISZERO ISZERO PUSH2 0x144 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x44 DUP4 ADD MSTORE SUB DUP2 GAS SWAP4 PUSH0 SWAP5 STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x28D0 JUMPI PUSH0 SWAP2 PUSH2 0x394A JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x395B DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP3 DUP3 SUB SLT PUSH2 0x71A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x71A JUMPI PUSH2 0x24F9 SWAP3 ADD PUSH2 0x29C8 JUMP JUMPDEST PUSH2 0x3995 SWAP2 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x31A5 DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x36D6 JUMP JUMPDEST SWAP1 POP PUSH1 0xE0 DUP2 ADD MLOAD TIMESTAMP GT PUSH0 EQ PUSH2 0x39B2 JUMPI PUSH1 0x1 SWAP1 PUSH2 0x366E JUMP JUMPDEST PUSH0 SWAP1 PUSH2 0x366E JUMP JUMPDEST PUSH2 0x39CD SWAP2 POP RETURNDATASIZE DUP1 PUSH0 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x365F JUMP JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x3A08 JUMPI JUMPDEST DUP2 PUSH2 0x39EF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x71A JUMPI PUSH2 0x3A01 PUSH0 SWAP2 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x3625 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x39E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2365 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH2 0x2306 JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST SWAP1 SWAP3 SWAP2 SWAP3 PUSH0 SWAP4 DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 SWAP2 PUSH1 0x14 DUP3 MSTORE PUSH1 0x40 DUP1 DUP9 KECCAK256 SWAP5 PUSH1 0x16 DUP5 MSTORE DUP2 DUP10 KECCAK256 SLOAD SWAP1 DUP10 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 PUSH1 0x10 SLOAD AND SWAP1 DUP6 MLOAD SWAP9 DUP10 DUP1 SWAP4 PUSH4 0xC1665499 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 SWAP12 DUP13 SWAP2 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x3D7E JUMPI SWAP1 DUP4 SWAP3 SWAP2 DUP7 SWAP5 SWAP3 PUSH2 0x3D43 JUMPI JUMPDEST POP PUSH1 0x24 SWAP1 DUP8 MLOAD SWAP5 DUP6 SWAP4 DUP5 SWAP3 PUSH4 0x22B76FCF PUSH1 0xE2 SHL DUP5 MSTORE DUP14 DUP5 ADD MSTORE AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x3D39 JUMPI SWAP1 DUP4 SWAP3 SWAP2 DUP13 SWAP2 PUSH2 0x3D1F JUMPI JUMPDEST POP PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45D1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP13 MSTORE PUSH1 0x9 DUP8 MSTORE DUP5 DUP13 KECCAK256 CALLER DUP14 MSTORE DUP8 MSTORE PUSH1 0xFF DUP6 DUP14 KECCAK256 SLOAD AND ISZERO PUSH2 0x3CD8 JUMPI JUMPDEST POP AND SWAP7 DUP8 ISZERO PUSH2 0x3CC1 JUMPI DUP4 DUP11 MSTORE DUP6 DUP6 MSTORE DUP2 DUP4 DUP12 KECCAK256 SLOAD AND SWAP5 CALLER ISZERO ISZERO DUP1 PUSH2 0x3C2F JUMPI JUMPDEST POP DUP9 DUP7 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP3 SWAP13 SWAP14 DUP11 DUP10 SWAP6 DUP5 PUSH2 0x3BFE JUMPI JUMPDEST DUP6 DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP10 DUP4 KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD SWAP1 SSTORE DUP7 DUP4 MSTORE MSTORE DUP8 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB PUSH1 0xA0 SHL SWAP15 DUP16 DUP3 SLOAD AND OR SWAP1 SSTORE DUP1 LOG4 AND SWAP1 DUP2 DUP5 SUB PUSH2 0x3BDF JUMPI POP POP POP POP POP PUSH1 0x2 ADD SWAP2 DUP3 SLOAD AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE SWAP4 DUP5 ADD MSTORE PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP2 POP REVERT JUMPDEST PUSH0 DUP8 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP10 DUP4 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE PUSH2 0x3B98 JUMP JUMPDEST DUP1 PUSH2 0x3C80 JUMPI JUMPDEST ISZERO PUSH2 0x3C40 JUMPI PUSH0 PUSH2 0x3B68 JUMP JUMPDEST DUP5 DUP8 DUP6 DUP9 PUSH2 0x3C5D JUMPI SWAP2 PUSH1 0x24 SWAP3 MLOAD SWAP2 PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP4 MSTORE DUP3 ADD MSTORE REVERT JUMPDEST MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE CALLER SWAP2 DUP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 SWAP1 PUSH1 0x40 ADD SUB SWAP1 REVERT JUMPDEST POP CALLER DUP7 EQ DUP1 ISZERO PUSH2 0x3CA5 JUMPI JUMPDEST DUP1 PUSH2 0x3C35 JUMPI POP DUP5 DUP12 MSTORE PUSH1 0x6 DUP2 MSTORE CALLER DUP4 DUP6 DUP14 KECCAK256 SLOAD AND EQ PUSH2 0x3C35 JUMP JUMPDEST POP DUP6 DUP12 MSTORE PUSH1 0x7 DUP2 MSTORE DUP4 DUP12 KECCAK256 CALLER DUP13 MSTORE DUP2 MSTORE PUSH1 0xFF DUP5 DUP13 KECCAK256 SLOAD AND PUSH2 0x3C8B JUMP JUMPDEST DUP3 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE DUP1 DUP8 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH2 0x100 SWAP2 SWAP3 POP ADD MLOAD ISZERO PUSH2 0x3CED JUMPI DUP2 SWAP1 PUSH0 PUSH2 0x3B49 JUMP JUMPDEST DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 DUP8 ADD DUP7 SWAP1 MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x6E6F742073656C6C61626C65 PUSH1 0xA0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH2 0x3D33 SWAP2 POP RETURNDATASIZE DUP1 DUP15 DUP4 RETURNDATACOPY PUSH2 0x124D DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST PUSH0 PUSH2 0x3B1F JUMP JUMPDEST DUP5 MLOAD RETURNDATASIZE DUP14 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST SWAP4 POP SWAP1 POP DUP8 DUP4 DUP2 RETURNDATASIZE DUP2 GT PUSH2 0x3D77 JUMPI JUMPDEST PUSH2 0x3D5C DUP2 DUP4 PUSH2 0x23CB JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x504 JUMPI PUSH1 0x24 PUSH2 0x3D70 DUP7 SWAP5 PUSH2 0x2996 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x3AF1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3D52 JUMP JUMPDEST DUP7 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x3D92 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x3D9C DUP3 PUSH2 0x4511 JUMP JUMPDEST SWAP2 PUSH1 0x70 DUP4 LT ISZERO PUSH2 0x3DD9 JUMPI POP DUP2 PUSH1 0x70 SUB SHL JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3FFF SWAP1 SWAP2 ADD PUSH1 0x70 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND OR PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 JUMP JUMPDEST PUSH1 0x70 DUP4 GT PUSH2 0x3DE8 JUMPI JUMPDEST POP PUSH2 0x3DAD JUMP JUMPDEST PUSH1 0x6F NOT DUP4 ADD SHR SWAP1 POP PUSH0 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x7FFF DUP2 PUSH1 0x80 SHR SWAP2 PUSH1 0xF0 SHR AND SWAP1 PUSH2 0x3FFF DUP3 LT PUSH2 0x3E54 JUMPI PUSH1 0x1 PUSH1 0x7F SHL DUP2 LT ISZERO PUSH2 0x71A JUMPI PUSH2 0x40FE DUP3 GT PUSH2 0x71A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH1 0x1 PUSH1 0x70 SHL OR SWAP1 PUSH2 0x406F DUP1 DUP3 LT ISZERO PUSH2 0x3E41 JUMPI SUB SHR SWAP1 JUMP JUMPDEST DUP2 GT PUSH2 0x3E4B JUMPI POP SWAP1 JUMP JUMPDEST PUSH2 0x406E NOT ADD SHL SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x7FFF DUP1 DUP3 PUSH1 0xF0 SHR AND DUP2 DUP5 PUSH1 0xF0 SHR AND SWAP1 DUP3 DUP2 EQ PUSH0 EQ PUSH2 0x3EE0 JUMPI POP SUB PUSH2 0x3EB8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 DUP2 AND DUP4 DUP3 AND SUB PUSH2 0x3E9A JUMPI POP PUSH1 0x1 PUSH1 0xFF SHL SWAP1 SWAP2 AND XOR SWAP1 JUMP JUMPDEST DUP2 DUP4 XOR AND PUSH1 0x1 PUSH1 0xFF SHL SUB PUSH2 0x3EAC JUMPI OR SWAP1 JUMP JUMPDEST POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 AND PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL AND XOR SWAP1 JUMP JUMPDEST DUP3 DUP3 SWAP4 SWAP3 SWAP6 SWAP5 SWAP6 EQ PUSH0 EQ PUSH2 0x3F11 JUMPI POP SWAP2 SWAP3 SWAP2 POP POP PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB DUP2 AND PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 DUP3 DUP7 PUSH1 0x80 SHR AND SWAP2 DUP1 ISZERO PUSH0 EQ PUSH2 0x409A JUMPI POP PUSH1 0x1 SWAP4 JUMPDEST DUP4 DUP7 PUSH1 0x80 SHR AND SWAP1 DUP1 ISZERO PUSH0 EQ PUSH2 0x408B JUMPI POP PUSH1 0x1 SWAP3 JUMPDEST MUL SWAP2 DUP3 SWAP5 DUP4 ISZERO PUSH2 0x406A JUMPI ADD SWAP3 DUP4 SWAP1 PUSH0 PUSH1 0x1 PUSH1 0xE1 SHL DUP6 LT PUSH2 0x4046 JUMPI POP PUSH1 0xE1 DUP1 SWAP3 JUMPDEST ADD SWAP2 PUSH2 0x4070 SWAP5 DUP6 DUP5 LT PUSH0 EQ PUSH2 0x3FA1 JUMPI POP POP POP POP POP POP POP POP SWAP1 PUSH0 SWAP2 DUP3 SWAP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP4 PUSH1 0x70 SHL SWAP2 PUSH1 0x1 PUSH1 0x7F SHL SWAP2 XOR PUSH1 0x80 SHR AND OR OR PUSH1 0x80 SHL AND SWAP1 JUMP JUMPDEST PUSH2 0x40E0 DUP5 LT ISZERO PUSH2 0x3FDE JUMPI POP POP POP POP POP DUP1 DUP3 LT PUSH0 EQ PUSH2 0x3FC4 JUMPI SUB SHR SWAP1 JUMPDEST PUSH0 SWAP3 PUSH2 0x3F7F JUMP JUMPDEST DUP2 GT PUSH2 0x3FD2 JUMPI JUMPDEST POP SWAP1 PUSH2 0x3FBD JUMP JUMPDEST PUSH2 0x406F NOT ADD SHL PUSH0 PUSH2 0x3FCB JUMP JUMPDEST SWAP2 SWAP5 POP SWAP2 SWAP5 POP PUSH2 0xC0DD DUP6 SWAP9 SWAP8 SWAP9 SWAP7 SWAP4 SWAP7 GT PUSH0 EQ PUSH2 0x4002 JUMPI POP POP POP POP POP SWAP2 PUSH0 SWAP2 PUSH2 0x3F7F JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP6 SWAP7 SWAP5 POP PUSH1 0x70 DUP3 GT PUSH0 EQ PUSH2 0x4028 JUMPI POP PUSH1 0x6F NOT ADD SHR JUMPDEST AND SWAP2 PUSH2 0x40DE NOT ADD SWAP3 PUSH2 0x3F7F JUMP JUMPDEST SWAP1 PUSH1 0x70 DUP2 LT PUSH2 0x4039 JUMPI JUMPDEST POP POP PUSH2 0x401B JUMP JUMPDEST PUSH1 0x70 SUB SHL SWAP1 POP PUSH0 DUP1 PUSH2 0x4032 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xE0 SHL DUP5 LT PUSH2 0x405C JUMPI PUSH1 0xE0 JUMPDEST DUP1 SWAP3 PUSH2 0x3F62 JUMP JUMPDEST PUSH2 0x4065 DUP5 PUSH2 0x4511 JUMP JUMPDEST PUSH2 0x4055 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP7 PUSH0 SWAP7 XOR DUP8 AND ISZERO SWAP5 POP PUSH2 0x4086 SWAP4 POP POP POP POP JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP2 OR SWAP1 PUSH2 0x3F42 JUMP JUMPDEST SWAP4 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP3 OR SWAP2 PUSH2 0x3F2E JUMP JUMPDEST PUSH2 0x7FFF PUSH2 0x4005 PUSH1 0xF0 DUP4 SWAP1 SHR DUP3 AND DUP1 DUP4 SUB PUSH2 0x40CD JUMPI POP SUB PUSH2 0x24F9 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 DUP2 DUP6 PUSH1 0x80 SHR AND DUP4 ISZERO PUSH0 EQ PUSH2 0x4284 JUMPI DUP1 PUSH2 0x4264 JUMPI JUMPDEST PUSH1 0x19 PUSH1 0x6C SHL SWAP1 DIV SWAP3 DUP4 ISZERO PUSH2 0x4242 JUMPI PUSH1 0x1 PUSH1 0x6C SHL DUP5 LT PUSH2 0x422E JUMPI PUSH0 PUSH1 0x1 PUSH1 0x73 SHL DUP6 LT PUSH2 0x41F8 JUMPI POP PUSH2 0x411A DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP3 JUMPDEST DUP2 DUP5 ADD SWAP1 PUSH2 0x4071 DUP5 ADD DUP3 GT ISZERO PUSH2 0x415F JUMPI POP POP POP POP POP POP SWAP1 PUSH0 SWAP1 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP3 PUSH1 0x70 SHL SWAP1 PUSH1 0x1 PUSH1 0x7F SHL SWAP1 PUSH3 0x40059 PUSH1 0xEC SHL XOR PUSH1 0x80 SHR AND OR OR PUSH1 0x80 SHL AND SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 SWAP6 POP PUSH2 0x3FFC SWAP5 DUP5 DUP7 DUP5 ADD LT PUSH0 EQ PUSH2 0x4185 JUMPI POP POP POP POP POP POP POP PUSH0 SWAP1 DUP2 SWAP1 PUSH2 0x4136 JUMP JUMPDEST DUP5 PUSH2 0x3F8C DUP5 ADD LT PUSH0 EQ PUSH2 0x41CE JUMPI POP POP POP DUP1 DUP4 ADD DUP3 DUP2 GT ISZERO PUSH2 0x41AC JUMPI POP SUB ADD SHL JUMPDEST PUSH0 SWAP2 PUSH2 0x4136 JUMP JUMPDEST DUP3 SWAP4 POP SWAP2 SWAP1 SWAP2 LT PUSH2 0x41BF JUMPI JUMPDEST POP POP PUSH2 0x41A5 JUMP JUMPDEST SWAP1 SUB PUSH2 0x3FFB NOT ADD SHR PUSH0 DUP1 PUSH2 0x41B8 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH2 0x3F8D SWAP5 POP PUSH1 0x70 DUP2 SWAP7 SWAP3 SWAP7 GT PUSH2 0x41ED JUMPI JUMPDEST POP AND SWAP3 SUB ADD SWAP2 PUSH2 0x4136 JUMP JUMPDEST PUSH1 0x6F NOT ADD SHR PUSH0 PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x72 SHL DUP6 LT PUSH2 0x4210 JUMPI POP PUSH1 0xFF PUSH1 0x72 JUMPDEST AND SWAP3 PUSH2 0x411C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x71 SHL DUP5 LT PUSH2 0x4225 JUMPI PUSH1 0xFF PUSH1 0x71 PUSH2 0x4209 JUMP JUMPDEST PUSH1 0xFF PUSH1 0x70 PUSH2 0x4209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP5 PUSH0 SWAP5 POP PUSH3 0x40059 PUSH1 0xEC SHL XOR DUP6 AND ISZERO SWAP3 POP PUSH2 0x4086 SWAP2 POP POP JUMPI POP SWAP1 JUMP JUMPDEST DUP1 SWAP4 POP PUSH2 0x4271 SWAP2 POP PUSH2 0x4511 JUMP JUMPDEST PUSH1 0xE2 SUB SWAP2 DUP3 SHL PUSH2 0x3F93 PUSH1 0x1 SWAP4 ADD SWAP1 PUSH2 0x40EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x70 SHL OR PUSH1 0x72 SHL PUSH2 0x40EB JUMP JUMPDEST SWAP1 PUSH2 0x7FFF DUP1 DUP4 PUSH1 0xF0 SHR AND SWAP1 DUP1 DUP4 PUSH1 0xF0 SHR AND SWAP2 DUP2 DUP2 EQ PUSH0 EQ PUSH2 0x42BF JUMPI POP SUB PUSH2 0x3ED6 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP3 SUB PUSH2 0x42F8 JUMPI POP POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x80 SHL DUP2 AND ISZERO PUSH2 0x42EE JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST XOR PUSH1 0x1 PUSH1 0xFF SHL AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xFF SHL SUB SWAP3 DUP5 DUP5 AND PUSH2 0x4332 JUMPI POP POP POP DUP3 AND PUSH2 0x4320 JUMPI POP PUSH2 0xFFFF PUSH1 0xEF SHL SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7FFF PUSH1 0xF0 SHL SWAP2 XOR PUSH1 0x1 PUSH1 0xFF SHL AND OR SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP5 SWAP4 SWAP5 SWAP1 DUP2 DUP7 PUSH1 0x80 SHR AND SWAP1 DUP1 ISZERO PUSH0 EQ PUSH2 0x4505 JUMPI POP PUSH1 0x1 SWAP1 JUMPDEST DUP3 DUP7 PUSH1 0x80 SHR AND DUP5 ISZERO PUSH0 EQ PUSH2 0x44F2 JUMPI DUP1 PUSH2 0x44CA JUMPI JUMPDEST SWAP1 PUSH2 0x4374 SWAP2 PUSH2 0x2802 JUMP JUMPDEST SWAP3 DUP4 ISZERO PUSH2 0x44AF JUMPI PUSH1 0x1 PUSH1 0x6C SHL DUP5 LT PUSH2 0x422E JUMPI PUSH0 PUSH1 0x1 PUSH1 0x73 SHL DUP6 LT PUSH2 0x4479 JUMPI POP PUSH2 0x439C DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP3 JUMPDEST DUP2 DUP5 ADD SWAP1 PUSH2 0x4071 DUP5 ADD DUP3 GT ISZERO PUSH2 0x43DA JUMPI POP POP POP POP POP POP SWAP2 XOR PUSH1 0x80 SWAP1 DUP2 SHR PUSH1 0x1 PUSH1 0x7F SHL AND PUSH1 0x70 SWAP3 SWAP1 SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 JUMP JUMPDEST SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 SWAP6 POP PUSH2 0x3FFC SWAP8 SWAP7 SWAP8 SWAP5 DUP5 DUP7 DUP5 ADD LT PUSH0 EQ PUSH2 0x4404 JUMPI POP POP POP POP POP POP POP SWAP1 PUSH0 SWAP2 DUP3 SWAP2 PUSH2 0x3F7F JUMP JUMPDEST DUP5 PUSH2 0x3F8C DUP5 ADD LT PUSH0 EQ PUSH2 0x444E JUMPI POP POP POP DUP1 DUP4 ADD DUP3 DUP2 GT ISZERO PUSH2 0x442B JUMPI POP SUB ADD SHL SWAP1 PUSH0 SWAP3 PUSH2 0x3F7F JUMP JUMPDEST DUP3 SWAP4 POP SWAP2 SWAP1 SWAP2 LT PUSH2 0x443F JUMPI JUMPDEST POP POP SWAP1 PUSH2 0x3FBD JUMP JUMPDEST SWAP1 SUB PUSH2 0x3FFB NOT ADD SHR PUSH0 DUP1 PUSH2 0x4437 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH2 0x3F8D SWAP5 POP PUSH1 0x70 DUP2 SWAP8 SWAP7 SWAP3 SWAP8 GT PUSH2 0x446E JUMPI JUMPDEST POP AND SWAP4 SUB ADD SWAP3 PUSH2 0x3F7F JUMP JUMPDEST PUSH1 0x6F NOT ADD SHR PUSH0 PUSH2 0x4463 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x72 SHL DUP6 LT PUSH2 0x4491 JUMPI POP PUSH1 0xFF PUSH1 0x72 JUMPDEST AND SWAP3 PUSH2 0x439E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x71 SHL DUP5 LT PUSH2 0x44A6 JUMPI PUSH1 0xFF PUSH1 0x71 PUSH2 0x448A JUMP JUMPDEST PUSH1 0xFF PUSH1 0x70 PUSH2 0x448A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xFF SHL SWAP6 PUSH0 SWAP6 XOR DUP7 AND ISZERO SWAP4 POP PUSH2 0x4086 SWAP3 POP POP POP JUMPI POP SWAP1 JUMP JUMPDEST SWAP4 POP PUSH2 0x4374 SWAP1 PUSH2 0x44D9 DUP6 PUSH2 0x4511 JUMP JUMPDEST PUSH1 0xE2 SUB SWAP5 DUP6 SHL SWAP3 PUSH1 0x1 SWAP6 PUSH1 0x71 NOT SWAP2 ADD ADD SWAP3 SWAP1 SWAP2 POP PUSH2 0x436A JUMP JUMPDEST PUSH2 0x4374 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL OR PUSH1 0x72 SHL PUSH2 0x2802 JUMP JUMPDEST SWAP1 PUSH1 0x1 PUSH1 0x70 SHL OR PUSH2 0x4356 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x71A JUMPI PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL DUP2 LT ISZERO PUSH2 0x45C5 JUMPI JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x2 SWAP3 LT ISZERO PUSH2 0x45B9 JUMPI JUMPDEST PUSH5 0x100000000 DUP2 LT ISZERO PUSH2 0x45AD JUMPI JUMPDEST PUSH3 0x10000 DUP2 LT ISZERO PUSH2 0x45A1 JUMPI JUMPDEST PUSH2 0x100 DUP2 LT ISZERO PUSH2 0x4595 JUMPI JUMPDEST PUSH1 0x10 DUP2 LT ISZERO PUSH2 0x4589 JUMPI JUMPDEST PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x457E JUMPI JUMPDEST LT ISZERO PUSH2 0x4578 JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 DUP2 SHR PUSH2 0x456F JUMP JUMPDEST PUSH1 0x4 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x8 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x455B JUMP JUMPDEST PUSH1 0x10 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4550 JUMP JUMPDEST PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4544 JUMP JUMPDEST PUSH1 0x40 SWAP3 DUP4 ADD SWAP3 SHR PUSH2 0x4536 JUMP JUMPDEST PUSH1 0x80 SWAP2 POP DUP2 SHR PUSH2 0x4526 JUMP INVALID LOG4 SWAP9 SMOD KECCAK256 0x5C 0xE4 0xD3 SSTORE MULMOD 0x2E CREATE2 0xA8 LOG1 DUP16 JUMP 0xE8 SWAP2 EXTCODECOPY DELEGATECALL LOG2 ADD 0xFB 0xE2 DUP8 DUP3 JUMPDEST MULMOD JUMP SWAP4 0xC2 OR PUSH22 0xA26469706673582212201AEFB3DD32FC94315259A4C1 PUSH8 0x992642FA8FFFB250 MUL PUSH7 0x5D7C1090CA8FC0 CREATE 0x21 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "880:20499:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;1500:62:3;;:::i;:::-;-1:-1:-1;;;;;880:20499:23;;;;2627:22:3;;2623:91;;3004:6;880:20499:23;;-1:-1:-1;;;;;880:20499:23;;;;;3004:6:3;880:20499:23;;3052:40:3;880:20499:23;3052:40:3;;880:20499:23;;2623:91:3;880:20499:23;;-1:-1:-1;;;2672:31:3;;880:20499:23;2672:31:3;;880:20499:23;;;;;2672:31:3;880:20499:23;;;;;;;;;;;;;;;;1210:45;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;4043:18:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:35;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;1260:47;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;2098:55;880:20499;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;-1:-1:-1;;;;;880:20499:23;;:::i;:::-;;;;2159:84;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;4747:26:1;880:20499:23;;;;:::i;:::-;;;;;3901:6:1;880:20499:23;;2475:4:1;880:20499:23;;;;3901:22:1;880:20499:23;2475:4:1;:::i;:::-;4747:26;:::i;:::-;;880:20499:23;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;-1:-1:-1;;;;;;;;;;;880:20499:23;;2954:6:1;880:20499:23;;;;;2463:10;880:20499;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;6014:26;880:20499;;;6014:26;880:20499;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1452:59;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;5185:4:9;880:20499:23;;;;;;;;;;;:::i;:::-;5125:7:9;;;;;;:::i;:::-;5185:4;:::i;:::-;880:20499:23;;;;;;;;;;;;;;;;;;;;1160:45;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;21105:261;21139:213;21174:121;21209:25;880:20499;;21209:25;:::i;:::-;21252;880:20499;;21252:25;:::i;:::-;21174:121;;:::i;:::-;21313:25;880:20499;;21313:25;:::i;:::-;21139:213;;:::i;:::-;21105:261;:::i;880:20499::-;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;15702:22:9;;15698:91;;15798:46;735:10:16;;880:20499:23;;15798:18:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;15798:46:9;880:20499:23;;;;;15859:41:9;880:20499:23;735:10:16;15859:41:9;;880:20499:23;;15698:91:9;880:20499:23;;-1:-1:-1;;;15747:31:9;;880:20499:23;15747:31:9;;880:20499:23;;;;;15747:31:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17483:10;880:20499;-1:-1:-1;;;;;880:20499:23;;;;17503:21;;880:20499;;;;;;17589:17;;;;;;880:20499;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;17796:13;;;17811:18;;;;;;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17831:3;880:20499;;;;;;17641:7;880:20499;;;;;17854:16;17641;17854;;880:20499;;17854:24;;;;17850:234;;17831:3;;;;;;:::i;:::-;17796:13;;;;;;17850:234;880:20499;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18001:33;;;;:::i;:::-;;;;;;:::i;:::-;;880:20499;;;;;;;18052:17;17831:3;17850:234;;;880:20499;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17608:3;880:20499;;;;;;17641:7;880:20499;;;;17641:16;880:20499;;;17641:16;880:20499;;17641:24;17637:77;;17608:3;;;;:::i;:::-;17574:13;;;;;;17637:77;880:20499;;;;;;;;;17685:14;17637:77;;880:20499;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;880:20499:23;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;-1:-1:-1;880:20499:23;;-1:-1:-1;880:20499:23;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;:::i;:::-;;;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:6:3;880:20499:23;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;:::i;:::-;;;;5831:91;;880:20499;;;;5799:13;880:20499;-1:-1:-1;;;880:20499:23;;;;;;;;;;5799:13;880:20499;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20964:22;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8661:25;880:20499;;8726:10;880:20499;;8760:29;880:20499;;;;;;;;;;;;;;;8661:156;;;;;;880:20499;;;;;;;;;;;;;;;8661:156;;880:20499;;;;8726:10;8661:156;880:20499;8661:156;;;:::i;:::-;;;;;;;;;;;;;;880:20499;8926:15;;;880:20499;;;8951:285;;880:20499;;9278:30;880:20499;;9278:30;:::i;:::-;880:20499;9350:21;880:20499;;9350:21;;:::i;:::-;;9549:15;;:::i;:::-;9674:23;;:::i;:::-;9742:4;;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;9862:45;880:20499;;9895:4;9864:29;880:20499;;;9864:29;;:::i;:::-;880:20499;9862:45;:::i;:::-;880:20499;;;;;;;-1:-1:-1;;;10259:30:23;;8726:10;880:20499;10259:30;;880:20499;;;;;;-1:-1:-1;;;;;880:20499:23;;10259:30;;;;;;;;;;;9917:698;880:20499;10106:4;880:20499;;-1:-1:-1;880:20499:23;;9917:698;10714:13;880:20499;;;-1:-1:-1;;;10714:37:23;;880:20499;;;;;;;;;-1:-1:-1;;;;;880:20499:23;10714:37;;;;;;;;;;;;9917:698;880:20499;;-1:-1:-1;;;10694:91:23;;880:20499;;;;10694:91;;880:20499;;;-1:-1:-1;880:20499:23;;;;-1:-1:-1;;;;;880:20499:23;10694:91;;;;;;;;10904:23;10694:91;;;;;9917:698;10904:23;;880:20499;10956:13;10971:10;880:20499;;10971:10;;;;10714:13;880:20499;;;;;;;-1:-1:-1;;;;;880:20499:23;13302:64;;;;;880:20499;;;;;;;;;;;;;13302:64;;880:20499;;;13302:64;;880:20499;;;;;;;13302:64;;;;;;;;;;;10951:2280;-1:-1:-1;;8661:25:23;880:20499;-1:-1:-1;;;;;880:20499:23;13425:57;;;;;880:20499;;-1:-1:-1;;;13425:57:23;;880:20499;;13425:57;;880:20499;;;;;;;;;;;;;;;;;;;:::i;:::-;13425:57;;;;;;;;;;880:20499;;13425:57;;;;:::i;:::-;880:20499;;13425:57;880:20499;13425:57;880:20499;;;;;;;;;13425:57;880:20499;;;13302:64;;;;:::i;:::-;880:20499;;13302:64;;;;880:20499;;;13302:64;880:20499;;;;;;;;;10983:3;11063:18;9895:4;11265:29;880:20499;;;11265:29;;:::i;:::-;880:20499;;;;;;9895:4;11378:15;;;11374:121;;11315:561;11972:12;880:20499;;;21105:261;21139:213;21174:121;21209:25;-1:-1:-1;;;;;880:20499:23;;;;;;21209:25;:::i;:::-;21252;;;:::i;21174:121::-;21139:213;:::i;21105:261::-;880:20499;;;;;;;12230:16;;;12226:510;;12175:980;;;;;10983:3;12175:980;;13205:14;880:20499;;;8726:10;13205:14;:::i;:::-;10983:3;:::i;:::-;10956:13;;12226:510;12407:4;880:20499;12407:4;12455:27;12531:73;12407:4;12385:20;12407:4;12385:20;;;;:::i;:::-;880:20499;12455:27;;;:::i;:::-;880:20499;;;;-1:-1:-1;;;12531:73:23;;8726:10;880:20499;12531:73;;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12531:73;;880:20499;;-1:-1:-1;;;;;880:20499:23;;12531:73;;;;;;;;12226:510;-1:-1:-1;12660:24:23;880:20499;;;-1:-1:-1;;;12626:69:23;;8726:10;880:20499;12626:69;;880:20499;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;12626:69;;880:20499;;-1:-1:-1;;;;;880:20499:23;;12626:69;;;;;;;;12226:510;;;;;;12626:69;880:20499;12626:69;;880:20499;12626:69;;;;;;880:20499;12626:69;;;:::i;:::-;;;880:20499;;;;;;10983:3;880:20499;;:::i;:::-;;12626:69;;;880:20499;;;;12626:69;;;-1:-1:-1;12626:69:23;;;880:20499;;;;;;;;;12531:73;880:20499;12531:73;;880:20499;12531:73;;;;;;880:20499;12531:73;;;:::i;:::-;;;880:20499;;;;12626:69;880:20499;;;;;:::i;:::-;;12531:73;;;;880:20499;;;;12531:73;;;-1:-1:-1;12531:73:23;;;880:20499;;;;;;;;;12175:980;12812:20;;;;;;12871:27;12812:20;;:::i;:::-;12871:27;;;:::i;:::-;12949:16;;12945:196;;12175:980;;;;;10983:3;12175:980;;;12945:196;12989:57;;;;;;;;;;;12945:196;880:20499;;12989:57;;;;;13077:24;880:20499;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;13069:53;;;;12945:196;13069:53;;;;12945:196;;;;;;13069:53;880:20499;;;;;;;;;13069:53;;;;;12989:57;880:20499;;;;;;;;;12989:57;;;-1:-1:-1;12989:57:23;;11374:121;880:20499;;9895:4;11425:24;880:20499;;;11425:24;;:::i;:::-;880:20499;11374:121;;;11315:561;11569:19;880:20499;;;;11569:19;;:::i;:::-;9895:4;880:20499;;;;;;9895:4;880:20499;;;;;;;9895:4;11612:28;11662:15;11315:561;11658:204;880:20499;;9895:4;11724:24;880:20499;;;11724:24;;:::i;:::-;880:20499;;;;;;;;;;;;;;;;11809:28;880:20499;;;;11809:28;;:::i;:::-;11839:4;880:20499;;;;;;;;;;;;;;;11658:204;11315:561;;880:20499;-1:-1:-1;;;880:20499:23;;8661:25;880:20499;;;;;;-1:-1:-1;;;880:20499:23;;8661:25;880:20499;;;;;10694:91;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;10714:37;;;880:20499;10714:37;;880:20499;10714:37;;;;;;880:20499;10714:37;;;:::i;:::-;;;880:20499;;;;;;;;;:::i;:::-;10714:37;;880:20499;;;;10714:37;;;-1:-1:-1;10714:37:23;;880:20499;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;10259:30;;;;880:20499;10259:30;;880:20499;10259:30;;;;;;880:20499;10259:30;;;:::i;:::-;;;880:20499;;;;;;10106:4;10259:30;;880:20499;;;;10259:30;;;-1:-1:-1;10259:30:23;;9917:698;10395:21;880:20499;;;;10395:21;;:::i;:::-;9895:4;880:20499;;;;;;9895:4;880:20499;;;;;;;10553:9;:29;880:20499;9917:698;880:20499;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;-1:-1:-1;;;880:20499:23;;8661:25;880:20499;;;;;;-1:-1:-1;;;880:20499:23;;8661:25;880:20499;;;;;8951:285;880:20499;;;9011:13;880:20499;9001:30;;880:20499;;;9092:24;;;:::i;:::-;880:20499;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;8951:285;;;880:20499;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;8661:25;880:20499;;;;-1:-1:-1;;;880:20499:23;;;;;;;8661:156;;;;:::i;:::-;880:20499;;8661:156;;;;;880:20499;;;;;;;;;;;;;;;;20706:13;880:20499;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;1500:62:3;;:::i;:::-;3004:6;880:20499:23;;-1:-1:-1;;;;;;880:20499:23;;;;;;;-1:-1:-1;;;;;880:20499:23;3052:40:3;880:20499:23;;3052:40:3;880:20499:23;;;;;;;;;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;;;;;880:20499:23;;:::i;:::-;;2010:19:9;;2006:87;;880:20499:23;;;;;;2109:9:9;880:20499:23;;;;;;;;;;2006:87:9;880:20499:23;;-1:-1:-1;;;2052:30:9;;880:20499:23;2052:30:9;;880:20499:23;;;;;2052:30:9;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1710:6:3;880:20499:23;;;-1:-1:-1;;;;;880:20499:23;;;2581:10;:21;:56;;;;880:20499;2573:92;;;:::i;:::-;880:20499;14110:25;880:20499;;;;;;;;;14110:58;;880:20499;;;14110:58;;880:20499;14110:58;;880:20499;;;;;;;;;:::i;:::-;14110:58;;;;;;;;;;;;;880:20499;14186:18;;;;880:20499;;;;14305:26;;;880:20499;14332:15;-1:-1:-1;14302:124:23;;880:20499;14517:18;;;880:20499;14569:24;;880:20499;14630:29;;;:::i;:::-;14683:13;14698:10;;;;;;880:20499;;;;;;14846:13;880:20499;;14846:63;;;;;;880:20499;;;;;;;;;;;;;;14846:63;;880:20499;14846:63;;880:20499;;;;;14846:63;;;;;;;;;;;14678:105;880:20499;;14110:25;880:20499;;14963:57;;;;;;880:20499;;;;;;;;;;;;;;;;14963:57;;880:20499;14963:57;;880:20499;;;;;;:::i;14963:57::-;880:20499;;;;14846:63;;;;:::i;:::-;880:20499;;14846:63;;;;;880:20499;;;;;;;;;14710:3;;14757:14;;;;;;:::i;14710:3::-;14683:13;;14302:124;880:20499;;-1:-1:-1;;;14386:29:23;;880:20499;14386:29;;880:20499;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;14386:29;880:20499;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;14110:58;;;;;;;;;;;;;;:::i;:::-;;;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;14110:58;;;;;2581:56;880:20499;-1:-1:-1;;;;;;;;;;;880:20499:23;;2954:6:1;880:20499:23;;;;;2581:10;880:20499;;;;2573:92;880:20499;;;;;;2581:56;;;;880:20499;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;;;;;;;;;;;;1710:6:3;880:20499:23;;2581:10;:21;:56;;;;880:20499;2573:92;;;:::i;:::-;15170:29;;;:::i;:::-;15215:13;15230:10;;;;;;880:20499;;;;;15378:13;880:20499;;15378:63;;;;;;880:20499;;;;;;;;;;;;;;15378:63;;880:20499;15378:63;;880:20499;;;;;15378:63;;;;;;;;880:20499;;15242:3;;15289:14;;;;;;:::i;15242:3::-;15215:13;;2581:56;880:20499;-1:-1:-1;;;;;;;;;;;880:20499:23;;2954:6:1;880:20499:23;;;;;2581:10;880:20499;;;;2573:92;880:20499;;;;;;2581:56;;;;880:20499;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:6:3;880:20499:23;-1:-1:-1;;;;;880:20499:23;2581:10;:21;:56;;;;880:20499;2573:92;;;:::i;:::-;880:20499;;;;;;6612:17;880:20499;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;2581:56;880:20499;-1:-1:-1;;;;;;;;;;;880:20499:23;;2954:6:1;880:20499:23;;;;;2581:10;880:20499;;;;2573:92;880:20499;;;;;;2581:56;;;;880:20499;;;;;;;-1:-1:-1;;880:20499:23;;;;;2278:22:9;880:20499:23;;2278:22:9;:::i;:::-;880:20499:23;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;:::i;:::-;;;;;;;;;;13690:25;880:20499;;13759:10;880:20499;;13793:29;880:20499;;;;;;;;;;;;;;13690:160;;;;;;880:20499;13690:160;880:20499;;;;;;;;;;;;;13690:160;;880:20499;;13759:10;;13690:160;880:20499;13690:160;;;:::i;:::-;;;;;;;;;;;880:20499;;;13690:160;;;;:::i;880:20499::-;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;1993:41;880:20499;;;;;;;1993:41;880:20499;1993:41;;880:20499;;;;;;;1993:41;;;880:20499;;;1993:41;;880:20499;;1993:41;;880:20499;1993:41;;;;;880:20499;1993:41;;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17310:10;880:20499;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;2040:51;880:20499;;;;:::i;:::-;;;;;5185:4:9;880:20499:23;;;:::i;:::-;;;;;;;;:::i;:::-;;;;5125:7:9;;;;;:::i;880:20499:23:-;;;;;;;;;;;;;1500:62:3;;:::i;:::-;19313:21:23;19352:11;;880:20499;;19471:22;880:20499;;;;;;;;;-1:-1:-1;;;;;880:20499:23;19463:56;;;;:::i;:::-;;880:20499;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;735:10:16;-1:-1:-1;;;;;880:20499:23;;5421:34:1;5417:102;;5529:37;880:20499:23;;;5529:37:1;:::i;5417:102::-;880:20499:23;;-1:-1:-1;;;5478:30:1;;880:20499:23;;5478:30:1;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;;4330:25:1;880:20499:23;;;;:::i;:::-;;;;;3901:6:1;880:20499:23;;2475:4:1;880:20499:23;;;;3901:22:1;880:20499:23;2475:4:1;:::i;:::-;4330:25;:::i;880:20499:23:-;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;2563:30:13;2559:90;;880:20499:23;2696:23:13;880:20499:23;2684:35:13;-1:-1:-1;;;;;880:20499:23;2696:23:13;;880:20499:23;;;;2684:35:13;:::i;:::-;880:20499:23;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;2559:90:13;880:20499:23;;;;-1:-1:-1;880:20499:23;;;:::i;:::-;;;;;;;;;;;;;2559:90:13;;;;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;1592:32;880:20499;1592:32;;;;;880:20499;1592:32;;;:::i;:::-;-1:-1:-1;880:20499:23;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;20833:20;880:20499;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;3901:6:1;880:20499:23;;;3901:22:1;880:20499:23;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;6484:21;880:20499;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;:::i;:::-;;;14947:22:9;;;:::i;:::-;735:10:16;15097:18:9;;:35;;;880:20499:23;15097:69:9;;;880:20499:23;15093:142:9;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;15287:28:9;;;;880:20499:23;;15350:15:9;880:20499:23;;;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;;;15093:142:9;880:20499:23;;-1:-1:-1;;;15193:27:9;;735:10:16;880:20499:23;15193:27:9;;880:20499:23;;;15193:27:9;15097:69;-1:-1:-1;;;;;;880:20499:23;;;;4043:18:9;880:20499:23;;;;;;;;735:10:16;880:20499:23;;;;;;;;;;15136:30:9;15097:69;;:35;-1:-1:-1;;;;;;880:20499:23;;735:10:16;15119:13:9;;15097:35;;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;3587:22:9;;;:::i;:::-;;880:20499:23;;6038:15:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:5:9;880:20499:23;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2446:5:9;880:20499:23;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;880:20499:23;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20530:36:23;;:76;;;;;880:20499;-1:-1:-1;880:20499:23;;;;-1:-1:-1;880:20499:23;20530:76;-1:-1:-1;;;2673:47:1;;;:87;;;;20530:76:23;;;;;;;;2673:87:1;-1:-1:-1;;;1702:40:9;;;-1:-1:-1;1717:25:9;;1702:104;;;;2673:87:1;1702:156:9;;;;2673:87:1;;;;;;;;;1702:156:9;2241:81:13;-1:-1:-1;2241:81:13;;;1702:156:9;;;;;;;2241:81:13;-1:-1:-1;;;861:40:18;;-1:-1:-1;2241:81:13;;;1702:104:9;-1:-1:-1;;;1758:48:9;;;-1:-1:-1;1702:104:9;;880:20499:23;;;;;;;;-1:-1:-1;;880:20499:23;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;880:20499:23;;;;:::o;:::-;;;;-1:-1:-1;;;;;880:20499:23;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;880:20499:23;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1592:32;880:20499;;;;;;1592:32;-1:-1:-1;880:20499:23;;;;-1:-1:-1;880:20499:23;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;:::o;:::-;;;;;;-1:-1:-1;880:20499:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;880:20499:23;;;;-1:-1:-1;880:20499:23;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;-1:-1:-1;;880:20499:23;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;880:20499:23;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;3199:103:1:-;880:20499:23;-1:-1:-1;880:20499:23;2954:6:1;880:20499:23;;;-1:-1:-1;880:20499:23;735:10:16;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;;;3519:23:1;3515:108;;3199:103;:::o;3515:108::-;880:20499:23;;;;3565:47:1;;;;;;735:10:16;3565:47:1;;;880:20499:23;;;;;3565:47:1;6179:316;;-1:-1:-1;880:20499:23;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;6276:23:1;6272:217;880:20499:23;;;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;6370:40:1;735:10:16;6370:40:1;;;880:20499:23;6424:11:1;:::o;6272:217::-;6466:12;;;:::o;6730:317::-;;-1:-1:-1;880:20499:23;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;6824:217:1;880:20499:23;;;;;;2954:6:1;880:20499:23;;;;;;;;;;;;;;;;;;;;6922:40:1;735:10:16;6922:40:1;;;880:20499:23;6976:11:1;:::o;1796:162:3:-;1710:6;880:20499:23;-1:-1:-1;;;;;880:20499:23;735:10:16;1855:23:3;1851:101;;1796:162::o;1851:101::-;880:20499:23;;-1:-1:-1;;;1901:40:3;;735:10:16;1901:40:3;;;880:20499:23;;;1901:40:3;16142:241:9;-1:-1:-1;880:20499:23;;;5803:7:9;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;;16271:19:9;;16267:88;;16364:12;16142:241;:::o;16267:88::-;880:20499:23;;;;16313:31:9;;;;;;5803:7;16313:31;;880:20499:23;16313:31:9;880:20499:23;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;880:20499:23;;;;:::o;:::-;;;:::o;16922:782:9:-;;;17038:14;;17034:664;;16922:782;;;;;:::o;17034:664::-;880:20499:23;;;;;;;;;;;;;;;;;;17076:71:9;;;;735:10:16;17076:71:9;;;880:20499:23;;;;;;;;;;;;;;;;;;;;:::i;:::-;17076:71:9;17055:1;17076:71;17055:1;;17076:71;;;;;;;;;;;;17034:664;-1:-1:-1;;17072:616:9;;17335:353;;;:::i;:::-;880:20499:23;;;;17385:18:9;;;880:20499:23;;-1:-1:-1;;;17434:25:9;;17076:71;17434:25;;880:20499:23;;;;;17434:25:9;17381:293;17561:95;;17076:71;17561:95;;17072:616;-1:-1:-1;;;;;;880:20499:23;17194:51:9;17190:130;;17072:616;17034:664;;;;;;17190:130;880:20499:23;;;;17276:25:9;;;;;;17076:71;17276:25;;880:20499:23;17276:25:9;17076:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;880:20499:23;;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;17076:71:9;;;;;;;;;-1:-1:-1;17076:71:9;;880:20499:23;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;2694:319::-;2957:8;880:20499;;;-1:-1:-1;;;2957:26:23;;880:20499;;;;;2957:26;;880:20499;;-1:-1:-1;;;;;880:20499:23;2957:26;;;;;;;-1:-1:-1;2957:26:23;;;2993:13;2694:319;:::o;2957:26::-;;;;880:20499;2957:26;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;2694:319;:::o;2957:26::-;;;;;;880:20499;;;-1:-1:-1;880:20499:23;;;;;3019:304;3262:13;880:20499;;;-1:-1:-1;;;3262:31:23;;880:20499;;;;;3262:31;;880:20499;;-1:-1:-1;;;;;880:20499:23;3262:31;;;;;;;-1:-1:-1;3262:31:23;;;3303:13;3019:304;:::o;880:20499::-;;;;:::o;:::-;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;880:20499:23;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;880:20499:23;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;:::o;6665:1002::-;;;6781:10;880:20499;-1:-1:-1;880:20499:23;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;880:20499:23;;;;10026:16:9;;10022:87;;880:20499:23;;;5803:7:9;880:20499:23;;;;;;;;;;;;9165:18:9;;;;9161:256;;;6665:1002:23;880:20499;;;9491:9:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;;9581:27:9;;;;10184:96;;17038:14;17034:664;;6665:1002:23;880:20499;;;;6905:13;880:20499;;;;;;;;;;;6905:24;;;;;;;;;880:20499;6905:24;;6888:115;880:20499;6905:24;6977:25;6939:31;6905:24;;;;;;;;6665:1002;6905:27;;6939:31;;:::i;:::-;6977:25;;:::i;:::-;880:20499;;6888:115;;;;880:20499;6888:115;;;880:20499;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;6888:115;880:20499;6888:115;;;;;;;:::i;:::-;880:20499;;;;;;;;;;;;:::i;:::-;;;7035:21;;880:20499;7035:21;;;;;;;;;;;;880:20499;;;;;;;:::i;:::-;;;;7086:236;;;880:20499;;;7086:236;;;880:20499;;;7086:236;;;880:20499;;;7086:236;;;880:20499;;;;7086:236;;7248:15;;880:20499;;7086:236;;;880:20499;;;;7086:236;880:20499;7086:236;;880:20499;;;;;;7067:7;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9491:9:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6905:13;880:20499;;7336:64;;;;;880:20499;;;;;;;;;;;;;7336:64;;;;;;880:20499;;;;;;7336:64;;;;;;;;6665:1002;880:20499;;;;7414:20;880:20499;;;;;;;;;;7525:29;880:20499;;;;;;;;;;;;;;;;;;;;;;;;;7525:29;880:20499;;;;;;;;;;;;;;6781:10;880:20499;;;;;;;;;;-1:-1:-1;;6781:10:23;880:20499;;;;;;;;;;;;7624:36;;7086:236;;7624:36;6665:1002::o;880:20499::-;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;;;;;;;;7336:64;;;;:::i;:::-;;;;;880:20499;;;;;;;;;7035:21;880:20499;;;;;;;;;6905:24;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;880:20499;;;;;;;;;17034:664:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;17076:71:9;;;;735:10:16;17076:71:9;;;880:20499:23;;;;;;;;;;;;;;;;;;;;:::i;:::-;17076:71:9;;;;;;;;;17034:664;-1:-1:-1;17072:616:9;;17335:353;;;;;;:::i;:::-;880:20499:23;;;17385:18:9;;;-1:-1:-1;;880:20499:23;-1:-1:-1;;;17434:25:9;;;;;880:20499:23;;;-1:-1:-1;17434:25:9;17381:293;17561:95;;;;;17072:616;880:20499:23;;;;;;-1:-1:-1;;;;;;880:20499:23;17194:51:9;17190:130;;17034:664;;;17190:130;880:20499:23;;-1:-1:-1;;;17276:25:9;;;;;880:20499:23;;;;;17276:25:9;17076:71;;;;;;;;;;;;;;;;;:::i;:::-;;;880:20499:23;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;17076:71:9;;;;;;;;;10184:96;880:20499:23;;-1:-1:-1;;;10238:31:9;;;;;880:20499:23;;;;;10238:31:9;9161:256;880:20499:23;;;;15350:15:9;880:20499:23;;;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;9372:9:9;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;9161:256:9;;10022:87;880:20499:23;;-1:-1:-1;;;10065:33:9;;;;;880:20499:23;;;;;10065:33:9;637:698:17;759:17;-1:-1:-1;12351:8:20;;12342:17;;;;12338:103;;637:698:17;12467:8:20;;12458:17;;;;12454:103;;637:698:17;12583:8:20;;12574:17;;;;12570:103;;637:698:17;12699:7:20;;12690:16;;;;12686:100;;637:698:17;12812:7:20;;12803:16;;;;12799:100;;637:698:17;12916:16:20;12925:7;12916:16;;;12912:100;;637:698:17;13038:7:20;13029:16;;;;13025:66;;637:698:17;779:1;880:20499:23;;921:76:17;880:20499:23;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;921:76:17;;;1010:282;779:1;;;1010:282;1305:13;;;;637:698;:::o;1010:282::-;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;;;1115:95:17;;;;880:20499:23;1115:95:17;880:20499:23;1227:11:17;;1260:10;1256:21;;1010:282;;;;;1256:21;1272:5;;13025:66:20;880:20499:23;13075:1:20;880:20499:23;13025:66:20;;;12912:100;880:20499:23;;12925:7:20;12996:1;880:20499:23;;;;12912:100:20;;;12799;12883:1;880:20499:23;;;;;;12799:100:20;;;;12686;12770:1;880:20499:23;;;;;;12686:100:20;;;;12570:103;12656:2;880:20499:23;;;;;;12570:103:20;;;;12454;12540:2;880:20499:23;;;;;;12454:103:20;;;;12338;12424:2;;-1:-1:-1;880:20499:23;;;-1:-1:-1;12338:103:20;;;7673:561:23;7830:13;880:20499;;;-1:-1:-1;;;7830:37:23;;-1:-1:-1;;;;;880:20499:23;;7830:37;;880:20499;;7830:37;;880:20499;;;;7830:37;;;;;;;-1:-1:-1;7830:37:23;;;7673:561;880:20499;;-1:-1:-1;880:20499:23;;;;;;;;;;;7810:91;;7830:37;7810:91;;880:20499;;7810:91;;;;;;;-1:-1:-1;7810:91:23;;;7673:561;7936:25;;;;880:20499;7983:22;;;;880:20499;7979:218;;8206:21;7673:561;:::o;7979:218::-;8024:29;;;880:20499;8056:15;-1:-1:-1;8020:167:23;;8206:21;7673:561;:::o;8020:167::-;8145:27;;;;880:20499;7673:561;:::o;7810:91::-;;;;;;;;;;;;:::i;:::-;;;;7830:37;;;;;;;;;;;;;;;;:::i;:::-;;;880:20499;;;;;;;;-1:-1:-1;880:20499:23;;:::i;:::-;7830:37;;;;;;;;-1:-1:-1;7830:37:23;;15455:1767;-1:-1:-1;880:20499:23;;;5803:7:9;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;15622:32;880:20499;;;-1:-1:-1;880:20499:23;15843:7;880:20499;;;-1:-1:-1;880:20499:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5803:7:9;880:20499:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15940:13;880:20499;;;;;;;;;15940:37;;880:20499;15940:37;5803:7:9;15940:37:23;;;;;;;;;-1:-1:-1;15940:37:23;;;15455:1767;-1:-1:-1;880:20499:23;;;-1:-1:-1;;;15920:100:23;;5803:7:9;15920:100:23;;880:20499;;;;;-1:-1:-1;;880:20499:23;;;;;;-1:-1:-1;;;;;880:20499:23;15920:100;;;;;;;-1:-1:-1;15920:100:23;;;15455:1767;16030:19;880:20499;16064:22;880:20499;16064:22;;880:20499;;16059:257;;15455:1767;880:20499;-1:-1:-1;880:20499:23;16340:17;880:20499;;;;-1:-1:-1;880:20499:23;;;:::i;:::-;16334:43;880:20499;;;;;-1:-1:-1;880:20499:23;16340:17;880:20499;;;;-1:-1:-1;880:20499:23;;:::i;16330:877::-;16666:24;;;;;;;880:20499;16750:23;5803:7:9;-1:-1:-1;16750:23:23;;;;880:20499;;;;;;;;;;16799:24;;;;;;;;880:20499;16799:24;-1:-1:-1;16799:24:23;;;16330:877;16799:34;;880:20499;16859:30;;;;16915:23;;;;880:20499;;;16964:27;;;;880:20499;;;17017:22;880:20499;17017:22;880:20499;;;;;;;;;;:::i;:::-;;;;16612:468;;880:20499;;16612:468;;880:20499;;16612:468;;880:20499;;16612:468;;880:20499;;16612:468;;880:20499;;16612:468;;880:20499;;16612:468;;880:20499;;;;;;;17106:19;880:20499;;;;;;;;;;;;17106:66;;17141:4;5803:7:9;17106:66:23;;880:20499;;;;;;;;;;;;;;16612:468;;880:20499;;;;;;16612:468;;880:20499;;;;;;;;;;;;;:::i;:::-;;16612:468;;880:20499;;;;;;16612:468;;880:20499;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;16666:24;880:20499;;;;;;;16666:24;880:20499;;;;;:::i;:::-;16612:468;880:20499;16612:468;;880:20499;;;;;;;;16612:468;;880:20499;;;;;;;;16612:468;880:20499;;;;;;;;;;;;;17106:66;;;;-1:-1:-1;17106:66:23;;;;;;;-1:-1:-1;17106:66:23;;;17099:73;;:::o;17106:66::-;;;;;-1:-1:-1;17106:66:23;;;;;;:::i;:::-;;;880:20499;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;:::i;16799:24::-;;;;;;-1:-1:-1;16799:24:23;;;;;;:::i;:::-;;;;16059:257;16139:29;;880:20499;16139:29;;880:20499;16171:15;-1:-1:-1;16135:171:23;16171:15;;;880:20499;16135:171;16059:257;;16135:171;-1:-1:-1;16135:171:23;16059:257;;15920:100;;;;;;-1:-1:-1;15920:100:23;;;;;;:::i;:::-;;;;15940:37;;;;880:20499;15940:37;;880:20499;15940:37;;;;;;880:20499;15940:37;;;:::i;:::-;;;880:20499;;;;;-1:-1:-1;880:20499:23;;:::i;:::-;15940:37;;;;;;;-1:-1:-1;15940:37:23;;880:20499;;;-1:-1:-1;;;880:20499:23;;;5803:7:9;880:20499:23;;;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;18134:751::-;;;;;-1:-1:-1;880:20499:23;;;;;;;18292:7;880:20499;;;;;;;18386:20;880:20499;;;;;;;;;;;;;;;18528:13;880:20499;;;;;;;;;;;;18528:37;;;;;;;;;;;;;;;;;;;;;;18134:751;880:20499;;;;;;;;;;;;;18508:91;;;;;880:20499;;18508:91;;;;;;;;;;;;;;;18134:751;880:20499;-1:-1:-1;;;;;;;;;;;880:20499:23;;2954:6:1;880:20499:23;;;;;18633:10;880:20499;;;;;;;;;;;18609:113;;18134:751;880:20499;;4241:16:9;;;4237:87;;880:20499:23;;;;;;;;;;;;18633:10;;9039:18:9;;9035:86;;;18134:751:23;9165:18:9;;;9581:27;9165:18;;;;;;;9161:256;;18134:751:23;880:20499;;;9491:9:9;880:20499:23;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;880:20499:23;;;;;;;;;;9581:27:9;;880:20499:23;4614:21:9;;;;4610:109;;18840:15:23;;;;;;;880:20499;;;;;;;18134:751::o;4610:109:9:-;880:20499:23;-1:-1:-1;;;4658:50:9;;;;;880:20499:23;;;;;;;;;;;-1:-1:-1;4658:50:9;9161:256;880:20499:23;;;;15350:15:9;880:20499:23;;;;;;;-1:-1:-1;;;;;;880:20499:23;;;;;;9372:9:9;880:20499:23;;;;;;;-1:-1:-1;;880:20499:23;;;9161:256:9;;9035:86;6518:127;;;9035:86;7197:39;7193:255;;9035:86;;;7193:255;7256:19;;;;880:20499:23;;;;;;16313:31:9;;;;7302;;;;880:20499:23;7302:31:9;7252:186;880:20499:23;-1:-1:-1;;;7379:44:9;;18633:10:23;7379:44:9;;;880:20499:23;;;;;;;;;;;;;;7379:44:9;;;6518:127;18633:10:23;;6556:16:9;;:52;;;;6518:127;6556:88;6518:127;6556:88;880:20499:23;;;;6038:15:9;880:20499:23;;18633:10;880:20499;;;;;;6612:32:9;6518:127;;6556:52;880:20499:23;;;;4043:18:9;880:20499:23;;;;;18633:10;880:20499;;;;;;;;;;6556:52:9;;4237:87;880:20499:23;;-1:-1:-1;;;4280:33:9;;;;;880:20499:23;;;;;4280:33:9;18609:113:23;18673:22;;;;;880:20499;;;;18609:113;;;;;880:20499;;;-1:-1:-1;;;880:20499:23;;;;;;;;;;;;;-1:-1:-1;;;880:20499:23;;;;;;;18508:91;;;-1:-1:-1;18508:91:23;;;;;;;;;:::i;:::-;;;;;880:20499;;;;;;;;;18528:37;;-1:-1:-1;18528:37:23;-1:-1:-1;18528:37:23;;;;;;;;;;;;;:::i;:::-;;;880:20499;;;;;;;;;:::i;:::-;18528:37;;;;;;;;;;880:20499;;;;;;;;;3081:447:22;3171:6;;;3179:18;3176:1;3179:18;:::o;3167:351::-;3220:18;3263:27;;;:::i;:::-;3304:9;3310:3;3304:9;;3310:3;;;880:20499:23;;3310:3:22;880:20499:23;;3300:85:22;-1:-1:-1;;;;;3405:39:22;3447:5;880:20499:23;;;3310:3:22;880:20499:23;-1:-1:-1;;;;;880:20499:23;;;;-1:-1:-1;;;;;;880:20499:23;;3476:33:22:o;3300:85::-;3310:3;3354:9;;3350:35;;3300:85;;;;3350:35;-1:-1:-1;;880:20499:23;;;;-1:-1:-1;3350:35:22;;;3925:583;4049:6;880:20499:23;;;;;;4028:27:22;4068:16;4079:5;4068:16;;4064:30;;-1:-1:-1;;;4125:48:22;;880:20499:23;;;4216:5:22;4204:17;;880:20499:23;;-1:-1:-1;;;;;4259:54:22;-1:-1:-1;;;4259:96:22;;4379:5;4368:16;;;4379:5;;;880:20499:23;;3925:583:22;:::o;4364:111::-;4430:16;;4426:49;;4364:111;3925:583;:::o;4426:49::-;-1:-1:-1;;880:20499:23;;7673:561;:::o;4064:30:22:-;4086:8;;-1:-1:-1;4086:8:22;:::o;21496:2485::-;21629:6;880:20499:23;;;;21608:27:22;880:20499:23;;;;21663:27:22;21703:19;;;;21699:2272;21629:6;;;-1:-1:-1;21738:19:22;21629:6;;-1:-1:-1;;;;;;880:20499:23;;;;;;21775:6:22;880:20499:23;;-1:-1:-1;;;;21794:38:22;;;21790:42;;21783:49::o;21771:166::-;21853:5;;;880:20499:23;-1:-1:-1;;;21853:43:22;880:20499:23;;21905:5:22;21898:12;:::o;21849:88::-;-1:-1:-1;;;;880:20499:23;21927:10:22;-1:-1:-1;21927:10:22:o;21734:368::-;880:20499:23;-1:-1:-1;;;;;;;21970:38:22;;880:20499:23;;-1:-1:-1;;;;880:20499:23;22015:10:22;-1:-1:-1;22015:10:22:o;21966:125::-;-1:-1:-1;;;22053:38:22;22049:42;;22042:49::o;21699:2272::-;22120:19;;;;;;;;22116:1855;21629:6;;;-1:-1:-1;880:20499:23;;;-1:-1:-1;;;;;;;;;22157:38:22;;880:20499:23;;-1:-1:-1;;;;880:20499:23;22202:10:22;-1:-1:-1;22202:10:22:o;22116:1855::-;-1:-1:-1;;;;;880:20499:23;;;;;22324:44:22;22382:14;;;22378:93;22382:14;;;22398:13;22410:1;22378:93;;880:20499:23;;;;22503:44:22;22561:14;;;22557:93;22561:14;;;22577:13;22589:1;22557:93;;880:20499:23;22661:24:22;;22699:15;;;22695:132;;880:20499:23;;;;-1:-1:-1;;;;22895:73:22;;880:20499:23;;22895:215:22;22909:59;22895:215;;;880:20499:23;23143:5:22;;23125:23;;;;23121:706;23143:5;;;23175:13;;;;;;;;;-1:-1:-1;23200:14:22;;23121:706;;-1:-1:-1;;;;;880:20499:23;;21623:3:22;880:20499:23;4139:34:22;880:20499:23;4139:34:22;;23872:5;;880:20499:23;;;23862:85:22;:98;880:20499:23;;;23837:125:22;:::o;23121:706::-;23253:5;23235:23;;23253:5;;;23289:17;;;;;;;;23285:151;23143:5;;;880:20499:23;;23285:151:22;;-1:-1:-1;23231:596:22;23121:706;;23285:151;23373:17;;23369:67;;23285:151;;;;;23369:67;-1:-1:-1;;880:20499:23;;23369:67:22;;;23231:596;23482:23;;;;;;23500:5;23482:23;;;;;;;;23478:349;23500:5;;;23519:18;;;;;23549:14;-1:-1:-1;23478:349:22;23121:706;;23478:349;23596:9;;;;;;;;21623:3;23596:9;;23592:119;21623:3;;;-1:-1:-1;;;880:20499:23;;23592:119:22;23724:44;880:20499:23;;;;23478:349:22;23121:706;;23592:119;23664:9;21623:3;23664:9;;23660:51;;23592:119;;;;;23660:51;21623:3;880:20499:23;;;-1:-1:-1;23660:51:22;;;;22895:215;-1:-1:-1;;;;22987:73:22;;880:20499:23;;23001:59:22;22987:123;22895:215;;;;22987:123;23079:31;;;:::i;:::-;22987:123;;22695:132;-1:-1:-1;;;;880:20499:23;-1:-1:-1;;22734:5:22;22733:44;;:48;;-1:-1:-1;880:20499:23;;-1:-1:-1;;;;880:20499:23;22733:94:22;22726:101;:::o;22733:94::-;;;22726:101;:::o;22557:93::-;4324:31;-1:-1:-1;;;22605:45:22;;;;22557:93;;22378;4324:31;-1:-1:-1;;;22426:45:22;;;;22378:93;;25238:2794;25371:6;880:20499:23;;;;;25350:27:22;;25445:19;;;25371:6;;-1:-1:-1;25480:19:22;25371:6;;-1:-1:-1;;;;880:20499:23;25501:10:22:o;25441:2581::-;26045:30;-1:-1:-1;;;;;880:20499:23;;;;;26210:44:22;26268:14;;26264:344;26268:14;;;26300:15;26296:199;;26264:344;-1:-1:-1;;;880:20499:23;;;26668:15:22;;26664:132;;-1:-1:-1;;;26815:44:22;;880:20499:23;;-1:-1:-1;;;;26895:45:22;;880:20499:23;;26943:31:22;;;;:::i;:::-;26895:213;;880:20499:23;;;;27153:5:22;880:20499:23;;27123:35:22;;27153:5;;;27184:18;;;;;;27214:14;-1:-1:-1;27119:759:22;;-1:-1:-1;;;;;880:20499:23;;25365:3:22;880:20499:23;4139:34:22;880:20499:23;4139:34:22;;880:20499:23;;;;27923:5:22;880:20499:23;;;27913:85:22;:98;880:20499:23;;;27888:125:22;:::o;27119:759::-;27267:5;;;;;;;;880:20499:23;;;;;27249:36:22;27245:633;27249:36;;;27312:13;;;;;;;-1:-1:-1;27337:14:22;;27245:633;27119:759;;27245:633;880:20499:23;27390:5:22;880:20499:23;;27372:36:22;27368:510;27372:36;;;-1:-1:-1;;;880:20499:23;;;27439:29:22;;;;;;880:20499:23;;;;27435:199:22;-1:-1:-1;27368:510:22;27119:759;;27435:199;27547:29;;;;;;;27543:91;;27435:199;;;;;27543:91;880:20499:23;;-1:-1:-1;;880:20499:23;;27543:91:22;;;;27368:510;27703:9;;;27850:5;27703:9;;25365:3;27703:9;;;;;27699:51;;27368:510;27763:44;;880:20499:23;;;27368:510:22;27119:759;;27699:51;-1:-1:-1;;880:20499:23;;27699:51:22;;;26895:213;-1:-1:-1;;;26987:45:22;;880:20499:23;;26987:121:22;880:20499:23;27001:31:22;26987:121;880:20499:23;26895:213:22;;;26987:121;-1:-1:-1;;;;27051:45:22;;880:20499:23;;;27065:31:22;26987:121;;27051:57;880:20499:23;25365:3:22;26987:121;;880:20499:23;;;;-1:-1:-1;880:20499:23;;;;;-1:-1:-1;880:20499:23;26664:132:22;-1:-1:-1;;;;880:20499:23;-1:-1:-1;;;;;;26703:5:22;26702:44;;:48;;-1:-1:-1;880:20499:23;;-1:-1:-1;;880:20499:23;26702:94:22;26695:101;:::o;26296:199::-;26350:31;;;;;;;:::i;:::-;26344:3;880:20499:23;;;;;26443:1:22;880:20499:23;;26296:199:22;;;26264:344;-1:-1:-1;;;26545:44:22;26594:3;880:20499:23;26264:344:22;;25238:2794;;25371:6;880:20499:23;;;;25350:27:22;880:20499:23;;;;;25405:27:22;25445:19;;;;25441:2581;25371:6;;;-1:-1:-1;25480:19:22;25371:6;;-1:-1:-1;;;;880:20499:23;25501:10:22;-1:-1:-1;25501:10:22:o;25441:2581::-;25594:19;;;25371:6;;-1:-1:-1;;;;;;25629:38:22;;:43;3414:30;;-1:-1:-1;;;;880:20499:23;25674:10:22;-1:-1:-1;25674:10:22:o;25625:141::-;25723:5;-1:-1:-1;;;25722:44:22;;25699:67::o;25590:2432::-;-1:-1:-1;;;;;;;880:20499:23;25785:38:22;;;880:20499:23;;-1:-1:-1;;;25844:38:22;;880:20499:23;;-1:-1:-1;;;;880:20499:23;25889:10:22;-1:-1:-1;25889:10:22:o;25840:145::-;-1:-1:-1;;;25942:5:22;;-1:-1:-1;;;25941:44:22;25921:64;;25914:71::o;25781:2241::-;26045:30;;;;-1:-1:-1;;;;;26045:30:22;;;880:20499:23;;;;;26031:44:22;26089:14;;;26085:93;26089:14;;;26105:13;26117:1;26085:93;;880:20499:23;;;;26210:44:22;26268:14;;26264:344;26268:14;;;26300:15;26296:199;;26264:344;;26631:23;26264:344;26631:23;:::i;:::-;26668:15;;;26664:132;;-1:-1:-1;;;26815:44:22;;880:20499:23;;-1:-1:-1;;;;26895:45:22;;880:20499:23;;26943:31:22;;;;:::i;:::-;26895:213;;880:20499:23;;;;27153:5:22;880:20499:23;;27123:35:22;;27153:5;;;-1:-1:-1;;;;;;27923:5:22;;880:20499:23;;;;-1:-1:-1;;;880:20499:23;25365:3:22;880:20499:23;;;;27913:85:22;;;;880:20499:23;;-1:-1:-1;;;;;;880:20499:23;;27888:125:22:o;27119:759::-;27267:5;;;;;;;;;;;880:20499:23;;;;;27249:36:22;27245:633;27249:36;;;27312:13;;;;;;;;-1:-1:-1;27337:14:22;;27245:633;27119:759;;27245:633;880:20499:23;27390:5:22;880:20499:23;;27372:36:22;27368:510;27372:36;;;-1:-1:-1;;;880:20499:23;;;27439:29:22;;;;;;880:20499:23;;;;27435:199:22;-1:-1:-1;27368:510:22;27119:759;;27435:199;27547:29;;;;;;;27543:91;;27435:199;;;;;;27543:91;880:20499:23;;-1:-1:-1;;880:20499:23;;27543:91:22;;;;27368:510;27703:9;;;27850:5;27703:9;;25365:3;27703:9;;;;;;27699:51;;27368:510;27763:44;;880:20499:23;;;27368:510:22;23121:706;;27699:51;-1:-1:-1;;880:20499:23;;27699:51:22;;;26895:213;-1:-1:-1;;;26987:45:22;;880:20499:23;;26987:121:22;880:20499:23;27001:31:22;26987:121;880:20499:23;26895:213:22;;;26987:121;-1:-1:-1;;;;27051:45:22;;880:20499:23;;;27065:31:22;26987:121;;27051:57;880:20499:23;25365:3:22;26987:121;;26664:132;-1:-1:-1;;;;880:20499:23;-1:-1:-1;;26703:5:22;26702:44;;:48;;-1:-1:-1;880:20499:23;;-1:-1:-1;;;880:20499:23;26702:94:22;26695:101;:::o;26296:199::-;26350:31;;26631:23;26350:31;;;;:::i;:::-;26344:3;880:20499:23;;;;26431:13:22;26443:1;880:20499:23;;;;;;26296:199:22;;;;;;26264:344;26631:23;;4324:31;-1:-1:-1;;;26545:44:22;26594:3;880:20499:23;26631:23:22;:::i;26085:93::-;4324:31;-1:-1:-1;;;26133:45:22;26085:93;;52116:629;52220:5;;880:20499:23;;52224:1:22;;-1:-1:-1;;;52266:40:22;;;52262:75;;52116:629;52348:24;-1:-1:-1;;;52666:3:22;52348:24;;;52344:57;;52116:629;52417:11;52412:16;;;52408:49;;52116:629;52473:7;52468:12;;;52464:45;;52116:629;52525:5;52520:10;;;52516:41;;52116:629;52573:4;52568:9;;;52564:40;;52116:629;52620:3;52615:8;;;52611:39;;52116:629;52661:8;;52657:25;;52116:629;:::o;52657:25::-;880:20499:23;;52116:629:22;:::o;52611:39::-;880:20499:23;;;;;;52611:39:22;;52564:40;52587:1;880:20499:23;;;;;52564:40:22;;52516:41;52540:1;880:20499:23;;;;;52516:41:22;;52464:45;52490:2;880:20499:23;;;;;52464:45:22;;52408:49;52438:2;880:20499:23;;;;;52408:49:22;;52344:57;52382:2;880:20499:23;;;;;52344:57:22;;52262:75;880:20499:23;;-1:-1:-1;880:20499:23;;52262:75:22;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "3591600",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"ADMIN_ROLE()": "770",
								"AllowedCrypto(uint256)": "6812",
								"DEFAULT_ADMIN_ROLE()": "918",
								"addCurrency(address)": "51694",
								"approve(address,uint256)": "31131",
								"balanceOf(address)": "2926",
								"buyTicket(string,uint256,uint256,bool,uint256)": "infinite",
								"createReservation(string,uint256,uint256)": "infinite",
								"eventContract()": "3328",
								"fetchTicketsForOwner(address)": "infinite",
								"getApproved(uint256)": "4642",
								"getBalance()": "259",
								"getEventContract()": "2821",
								"getLatestData()": "infinite",
								"getLatestDataMaticUsd()": "infinite",
								"getResellPaymentSplitter()": "2887",
								"getRoleAdmin(bytes32)": "2473",
								"getTicketTypesForTicket(uint256)": "2489",
								"getTotalTicketsSold()": "2599",
								"grantRole(bytes32,address)": "33447",
								"hasRole(bytes32,address)": "3181",
								"isApprovedForAll(address,address)": "3632",
								"mintTicket(string,address)": "infinite",
								"mintTicketAdmin(address,uint256,uint256)": "infinite",
								"mulDiv(uint256,uint256,uint256)": "infinite",
								"name()": "infinite",
								"nbTicketForUserAndTicketTypes(address,uint256)": "3458",
								"organizerPaymentSplitter()": "3306",
								"owner()": "2953",
								"ownerOf(uint256)": "2826",
								"renounceOwnership()": "28582",
								"renounceRole(bytes32,address)": "29055",
								"resellPaiementSplitter()": "3372",
								"revokeRole(bytes32,address)": "34165",
								"royaltyInfo(uint256,uint256)": "infinite",
								"safeTransferFrom(address,address,uint256)": "infinite",
								"safeTransferFrom(address,address,uint256,bytes)": "infinite",
								"setApprovalForAll(address,bool)": "27237",
								"setRoyalty(uint96)": "infinite",
								"setTicketURI(uint256,string)": "infinite",
								"supportsInterface(bytes4)": "518",
								"symbol()": "infinite",
								"ticketReservationContract()": "3174",
								"ticketSpecificUri(uint256)": "infinite",
								"ticketTypesForTicket(uint256)": "3326",
								"tickets(uint256)": "15517",
								"tixSellpaymentSplitter()": "3112",
								"tokenURI(uint256)": "infinite",
								"transferFrom(address,address,uint256)": "infinite",
								"transferOwnership(address)": "29273",
								"withdraw()": "infinite"
							},
							"internal": {
								"getTicketsPrice(uint256)": "infinite",
								"mintTicket(address,uint256,uint256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "CALLVALUE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSHSIZE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "CODESIZE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "10"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "10"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "CODECOPY",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "160"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "13"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "13"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP8",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP7",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP7",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "23"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "24"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "26"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "26"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "27"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "E0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "27"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "28"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "100"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "28"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "29"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "120"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "29"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "30"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "140"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "30"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "160"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP9",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "9F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP9",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "37"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP12",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "37"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP11",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP11",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "41"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "180"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "41"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "42"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "42"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1C0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP9",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP8",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP11",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP11",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "45"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "2B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "46"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP10",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "46"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40C4F240A6CAD8D8A8D2F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "AB"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "45"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "47"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "2F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "48"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP7",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP7",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "48"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "2053656C6C5469785469636B657473"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "88"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "47"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 1451,
									"end": 1464,
									"name": "PUSH",
									"source": 9,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "51"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "52"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "EQ",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "66"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "55"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "56"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "EQ",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "57"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "59"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "60"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 1451,
									"end": 1464,
									"name": "PUSH",
									"source": 9,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "61"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "64"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "65"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "EQ",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "66"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "68"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "69"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "EQ",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "70"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "72"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "73"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "74"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 1273,
									"end": 1299,
									"name": "ISZERO",
									"source": 3
								},
								{
									"begin": 1269,
									"end": 1364,
									"name": "PUSH [tag]",
									"source": 3,
									"value": "75"
								},
								{
									"begin": 1269,
									"end": 1364,
									"name": "JUMPI",
									"source": 3
								},
								{
									"begin": 3004,
									"end": 3010,
									"name": "PUSH",
									"source": 3,
									"value": "8"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 3052,
									"end": 3092,
									"name": "PUSH",
									"source": 3,
									"value": "8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP1",
									"source": -1
								},
								{
									"begin": 3052,
									"end": 3092,
									"name": "LOG3",
									"source": 3
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 1085,
									"end": 1088,
									"name": "PUSH",
									"source": 23,
									"value": "C8"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 3924,
									"end": 3927,
									"name": "tag",
									"source": 23,
									"value": "77"
								},
								{
									"begin": 3924,
									"end": 3927,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP10",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "78"
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 3953,
									"end": 3987,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "80"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "81"
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "DUP14",
									"source": 23
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 3976,
									"end": 3986,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "tag",
									"source": 23,
									"value": "81"
								},
								{
									"begin": 3976,
									"end": 3986,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 3953,
									"end": 3987,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "6"
								},
								{
									"begin": 3953,
									"end": 3987,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 3953,
									"end": 3987,
									"name": "tag",
									"source": 23,
									"value": "80"
								},
								{
									"begin": 3953,
									"end": 3987,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 4002,
									"end": 4044,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "82"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "83"
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "DUP14",
									"source": 23
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 4033,
									"end": 4043,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "tag",
									"source": 23,
									"value": "83"
								},
								{
									"begin": 4033,
									"end": 4043,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 4002,
									"end": 4044,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "7"
								},
								{
									"begin": 4002,
									"end": 4044,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 4002,
									"end": 4044,
									"name": "tag",
									"source": 23,
									"value": "82"
								},
								{
									"begin": 4002,
									"end": 4044,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "EQ",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "84"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 3889,
									"end": 3902,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "77"
								},
								{
									"begin": 3889,
									"end": 3902,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "84"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4E487B71"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "E0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "11"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "tag",
									"source": 23,
									"value": "78"
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 4064,
									"end": 4121,
									"name": "PUSH",
									"source": 23,
									"value": "C"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP15",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "B"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "60"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP5",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP5",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SHL",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 4198,
									"end": 4264,
									"name": "PUSH",
									"source": 23,
									"value": "D"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 4275,
									"end": 4346,
									"name": "PUSH",
									"source": 23,
									"value": "E"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "F"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 4499,
									"end": 4541,
									"name": "PUSH",
									"source": 23,
									"value": "D0D5E3DB44DE05E9F294BB0A3BEEAF030DE24ADA"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "SWAP6",
									"source": 23
								},
								{
									"begin": 3904,
									"end": 3922,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "86"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "86"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "2F7B97837F2D14BA2ED3A4B2282E259126A9B848"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "10000000000000000"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "94"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "FF"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A8"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "91"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "91"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "9999F7FEA5938FD3B1E26A12C3F2FB024E194F97"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "10000000000000000"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "94"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 5799,
									"end": 5812,
									"name": "PUSH",
									"source": 23,
									"value": "12"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "BB8A6A4669BA250D26CD7A459ECA9D215F8307E33AEBE50379BC5A3617EC3444"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 5831,
									"end": 5922,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A8"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "FF"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 4963,
									"end": 5009,
									"name": "PUSH",
									"source": 23,
									"value": "10"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP5",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 5019,
									"end": 5090,
									"name": "PUSH",
									"source": 23,
									"value": "13"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "3299E865"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "44"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP7",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "64"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "tag",
									"source": 1,
									"value": "96"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "LT",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "97"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "24"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP4",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "GAS",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "CALL",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "99"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "101"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "tag",
									"source": 1,
									"value": "102"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 5393,
									"end": 5481,
									"name": "PUSH",
									"source": 23,
									"value": "11"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "AND",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "OR",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SSTORE",
									"source": 1
								},
								{
									"begin": 4064,
									"end": 4121,
									"name": "PUSH",
									"source": 23,
									"value": "C"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLOAD",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 3156,
									"end": 3161,
									"name": "PUSH",
									"source": 13,
									"value": "2710"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 3576,
									"end": 3602,
									"name": "DUP2",
									"source": 13
								},
								{
									"begin": -1,
									"end": -1,
									"name": "LT",
									"source": -1
								},
								{
									"begin": 3572,
									"end": 3745,
									"name": "PUSH [tag]",
									"source": 13,
									"value": "103"
								},
								{
									"begin": 3572,
									"end": 3745,
									"name": "JUMPI",
									"source": 13
								},
								{
									"begin": 3758,
									"end": 3780,
									"name": "POP",
									"source": 13
								},
								{
									"begin": 3758,
									"end": 3780,
									"name": "DUP2",
									"source": 13
								},
								{
									"begin": 3758,
									"end": 3780,
									"name": "ISZERO",
									"source": 13
								},
								{
									"begin": 3754,
									"end": 3862,
									"name": "PUSH [tag]",
									"source": 13,
									"value": "105"
								},
								{
									"begin": 3754,
									"end": 3862,
									"name": "JUMPI",
									"source": 13
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "107"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "107"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 3894,
									"end": 3929,
									"name": "SWAP1",
									"source": 13
								},
								{
									"begin": 3894,
									"end": 3929,
									"name": "SWAP2",
									"source": 13
								},
								{
									"begin": 3894,
									"end": 3929,
									"name": "ADD",
									"source": 13
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "A0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH #[$]",
									"source": 23,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [$]",
									"source": 23,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "CODECOPY",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "RETURN",
									"source": 23
								},
								{
									"begin": 3754,
									"end": 3862,
									"name": "tag",
									"source": 13,
									"value": "105"
								},
								{
									"begin": 3754,
									"end": 3862,
									"name": "JUMPDEST",
									"source": 13
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "5B6CC805"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 3803,
									"end": 3851,
									"name": "DUP2",
									"source": 13
								},
								{
									"begin": 3803,
									"end": 3851,
									"name": "MSTORE",
									"source": 13
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 3803,
									"end": 3851,
									"name": "DUP3",
									"source": 13
								},
								{
									"begin": 3803,
									"end": 3851,
									"name": "ADD",
									"source": 13
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "24"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 3803,
									"end": 3851,
									"name": "REVERT",
									"source": 13
								},
								{
									"begin": 3572,
									"end": 3745,
									"name": "tag",
									"source": 13,
									"value": "103"
								},
								{
									"begin": 3572,
									"end": 3745,
									"name": "JUMPDEST",
									"source": 13
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "6F483D09"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 3679,
									"end": 3734,
									"name": "DUP2",
									"source": 13
								},
								{
									"begin": 3679,
									"end": 3734,
									"name": "MSTORE",
									"source": 13
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "60"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 3679,
									"end": 3734,
									"name": "DUP4",
									"source": 13
								},
								{
									"begin": 3679,
									"end": 3734,
									"name": "ADD",
									"source": 13
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "24"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH",
									"source": 1,
									"value": "44"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 3679,
									"end": 3734,
									"name": "REVERT",
									"source": 13
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "tag",
									"source": 23,
									"value": "101"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "RETURNDATASIZE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "108"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "tag",
									"source": 23,
									"value": "109"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "110"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 5302,
									"end": 5383,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "tag",
									"source": 23,
									"value": "110"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SUB",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SLT",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "111"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "113"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "113"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "102"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "tag",
									"source": 1,
									"value": "111"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "tag",
									"source": 23,
									"value": "108"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "RETURNDATASIZE",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "109"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "tag",
									"source": 23,
									"value": "99"
								},
								{
									"begin": 5302,
									"end": 5383,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "RETURNDATASIZE",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "RETURNDATACOPY",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "RETURNDATASIZE",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "tag",
									"source": 1,
									"value": "97"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MLOAD",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP8",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP6",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP5",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP5",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "96"
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "94"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4E487B71"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "E0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "32"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4E487B71"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "E0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "41"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 1269,
									"end": 1364,
									"name": "tag",
									"source": 3,
									"value": "75"
								},
								{
									"begin": 1269,
									"end": 1364,
									"name": "JUMPDEST",
									"source": 3
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1E4FBDF7"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "DUP2",
									"source": 3
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "MSTORE",
									"source": 3
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "PUSH",
									"source": 3,
									"value": "4"
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "DUP3",
									"source": 3
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "ADD",
									"source": 3
								},
								{
									"begin": 2232,
									"end": 2236,
									"name": "MSTORE",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "24"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 1322,
									"end": 1353,
									"name": "REVERT",
									"source": 3
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "72"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "73"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "70"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "C2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "114"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "115"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "117"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "118"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "74"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "117"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "F8"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "118"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "115"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "114"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "68"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 1474,
									"end": 1491,
									"name": "PUSH",
									"source": 9,
									"value": "3"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "C2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "119"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "120"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "121"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "122"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "69"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "122"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "121"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "119"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "120"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "66"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4E487B71"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "E0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "22"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "64"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "7F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "65"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "59"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "60"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "57"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 1451,
									"end": 1464,
									"name": "PUSH",
									"source": 9,
									"value": "2"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "20"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH data",
									"source": -1,
									"value": "1AB0C6948A275349AE45A06AAD66A8BD65AC18074615D53676C09B67809099E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "CODECOPY",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MSTORE",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "124"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "125"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "127"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "128"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 1451,
									"end": 1464,
									"name": "PUSH",
									"source": 9,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "61"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "127"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "F8"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "128"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "125"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "124"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "55"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 1451,
									"end": 1464,
									"name": "PUSH",
									"source": 9,
									"value": "2"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "20"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH data",
									"source": -1,
									"value": "1AB0C6948A275349AE45A06AAD66A8BD65AC18074615D53676C09B67809099E0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "CODECOPY",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MSTORE",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "129"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "130"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP6",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SHR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "131"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "132"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "POP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "56"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "132"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP4",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "131"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "129"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "130"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "51"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "7F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "52"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "REVERT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "24"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "134"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "134"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "23"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "2"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1F"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "GT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "92"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "3"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SUB",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "43"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "4"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "141"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "142"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "tag",
									"source": 23,
									"value": "142"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "141"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "tag",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "JUMPDEST",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MLOAD",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "LT",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "ISZERO",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "94"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "5"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "SHL",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "ADD",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 23
								},
								{
									"begin": 6179,
									"end": 6495,
									"name": "tag",
									"source": 1,
									"value": "6"
								},
								{
									"begin": 6179,
									"end": 6495,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "5E421A728E346CCAF4D82870EC53D59217A30D3483C6688054A2A67760F2138C"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP2",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "PUSH",
									"source": 23,
									"value": "A49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775"
								},
								{
									"begin": 988,
									"end": 1011,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "FF"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "146"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 2954,
									"end": 2960,
									"name": "PUSH",
									"source": 1,
									"value": "9"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP5",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "FF"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "20"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH data",
									"source": -1,
									"value": "1400FE2F234CF888B5E4C66700C7903F33F31BFC9675E51CB0119F915EB534D"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "CODECOPY",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MSTORE",
									"source": -1
								},
								{
									"begin": 735,
									"end": 745,
									"name": "CALLER",
									"source": 16
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "SWAP4",
									"source": 1
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "LOG4",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 6424,
									"end": 6435,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 6424,
									"end": 6435,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 6272,
									"end": 6489,
									"name": "tag",
									"source": 1,
									"value": "146"
								},
								{
									"begin": 6272,
									"end": 6489,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 6179,
									"end": 6495,
									"name": "tag",
									"source": 1,
									"value": "7"
								},
								{
									"begin": 6179,
									"end": 6495,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "0"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "EC8156718A8372B1DB44BB411437D0870F3E3790D4A08526D024CE1B0B668F6B"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "FF"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH [tag]",
									"source": 23,
									"value": "148"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "JUMPI",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 2954,
									"end": 2960,
									"name": "PUSH",
									"source": 1,
									"value": "9"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP2",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP4",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "20"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "MSTORE",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "40"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "KECCAK256",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "FF"
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "NOT",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "DUP3",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SLOAD",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "AND",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "OR",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SWAP1",
									"source": 23
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "SSTORE",
									"source": 23
								},
								{
									"begin": 735,
									"end": 745,
									"name": "CALLER",
									"source": 16
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP1",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "20"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH data",
									"source": -1,
									"value": "1400FE2F234CF888B5E4C66700C7903F33F31BFC9675E51CB0119F915EB534D"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP4",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "CODECOPY",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "DUP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MLOAD",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SWAP2",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "MSTORE",
									"source": -1
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 6370,
									"end": 6410,
									"name": "LOG4",
									"source": 1
								},
								{
									"begin": 880,
									"end": 21379,
									"name": "PUSH",
									"source": 23,
									"value": "1"
								},
								{
									"begin": 6424,
									"end": 6435,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 6424,
									"end": 6435,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 6272,
									"end": 6489,
									"name": "tag",
									"source": 1,
									"value": "148"
								},
								{
									"begin": 6272,
									"end": 6489,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 6466,
									"end": 6478,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212201aefb3dd32fc94315259a4c167992642fa8fffb25002665d7c1090ca8fc0f02164736f6c63430008140033",
									".code": [
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "58"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "58"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1FFC9A7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6FDDE03"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "62"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "81812FC"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "95EA7B3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "66"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "12065FE0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "68"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "23B872DD"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "248A9CA3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "72"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24CDA745"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "74"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "26C91CAD"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "76"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2A55205A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "78"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2F2FF15D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "36568ABE"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "82"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3CCFD60B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "42842E0E"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "86"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "45A986C9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "88"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4FDF4780"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "90"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "50B44712"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "92"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5F0D5B85"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "94"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6352211E"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "96"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6BB03A87"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "98"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6E754D3D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6F269B7A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "102"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "70A08231"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "104"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "715018A6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "106"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "715E76AA"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "108"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "7247B789"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "110"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "75B238FC"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "112"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "796C8481"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "114"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "871A1F2D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "116"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8AB234B6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "118"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8DA5CB5B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "91D14854"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "122"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "95D89B41"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "124"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "9AF1179E"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "126"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A217FDDF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "128"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A22CB465"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "130"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "AA9A0912"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "132"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "AB757D61"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "134"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "B4C24AF7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "136"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "B88D4FDE"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "138"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C6458486"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C87B56DD"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "142"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "CAC92669"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "144"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "D547741F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "146"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "D56D2E60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "148"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "D7FF31E7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "150"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "DC40DA5C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "152"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E274FD24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "154"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E985E9C5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "156"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F074EC5A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "158"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F2FDE38B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "160"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "160"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "166"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "166"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "167"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "22"
										},
										{
											"begin": 1500,
											"end": 1562,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "tag",
											"source": 3,
											"value": "167"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2627,
											"end": 2649,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 2627,
											"end": 2649,
											"name": "ISZERO",
											"source": 3
										},
										{
											"begin": 2623,
											"end": 2714,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "168"
										},
										{
											"begin": 2623,
											"end": 2714,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 3004,
											"end": 3010,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 3004,
											"end": 3010,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 3052,
											"end": 3092,
											"name": "PUSH",
											"source": 3,
											"value": "8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 3052,
											"end": 3092,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 3052,
											"end": 3092,
											"name": "LOG3",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 2623,
											"end": 2714,
											"name": "tag",
											"source": 3,
											"value": "168"
										},
										{
											"begin": 2623,
											"end": 2714,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1E4FBDF7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 2672,
											"end": 2703,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 2672,
											"end": 2703,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 2672,
											"end": 2703,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 2672,
											"end": 2703,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2672,
											"end": 2703,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "158"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1210,
											"end": 1255,
											"name": "PUSH",
											"source": 23,
											"value": "C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "156"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "178"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "178"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "179"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "179"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 4043,
											"end": 4061,
											"name": "PUSH",
											"source": 9,
											"value": "7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "154"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1411,
											"end": 1446,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "152"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1260,
											"end": 1307,
											"name": "PUSH",
											"source": 23,
											"value": "D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "150"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2098,
											"end": 2153,
											"name": "PUSH",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "148"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "196"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "196"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2159,
											"end": 2243,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "146"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 4747,
											"end": 4773,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "201"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "202"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "202"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3907,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "203"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3923,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 2475,
											"end": 2479,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "tag",
											"source": 1,
											"value": "203"
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 4747,
											"end": 4773,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "21"
										},
										{
											"begin": 4747,
											"end": 4773,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 4747,
											"end": 4773,
											"name": "tag",
											"source": 1,
											"value": "201"
										},
										{
											"begin": 4747,
											"end": 4773,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 4747,
											"end": 4773,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "144"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 2463,
											"end": 2473,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "210"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 6014,
											"end": 6040,
											"name": "PUSH",
											"source": 23,
											"value": "B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 6014,
											"end": 6040,
											"name": "PUSH",
											"source": 23,
											"value": "B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "210"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "19"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4F6E6C7920666F756E646572732063616E20646F207468617400000000000000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "142"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "48"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1452,
											"end": 1511,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "138"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "226"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "226"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "227"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "227"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "230"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "23"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "230"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "232"
										},
										{
											"begin": 5185,
											"end": 5189,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "233"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "232"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "234"
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "51"
										},
										{
											"begin": 5125,
											"end": 5132,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "tag",
											"source": 9,
											"value": "234"
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 5185,
											"end": 5189,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "26"
										},
										{
											"begin": 5185,
											"end": 5189,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 5185,
											"end": 5189,
											"name": "tag",
											"source": 9,
											"value": "233"
										},
										{
											"begin": 5185,
											"end": 5189,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "230"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "136"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 1160,
											"end": 1205,
											"name": "PUSH",
											"source": 23,
											"value": "B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "134"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "243"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "31"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "243"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "132"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 21105,
											"end": 21366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "243"
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "249"
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "250"
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "251"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "52"
										},
										{
											"begin": 21209,
											"end": 21234,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "tag",
											"source": 23,
											"value": "251"
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "252"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "52"
										},
										{
											"begin": 21252,
											"end": 21277,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "tag",
											"source": 23,
											"value": "252"
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "54"
										},
										{
											"begin": 21174,
											"end": 21295,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "tag",
											"source": 23,
											"value": "250"
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21313,
											"end": 21338,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "253"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 21313,
											"end": 21338,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "52"
										},
										{
											"begin": 21313,
											"end": 21338,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21313,
											"end": 21338,
											"name": "tag",
											"source": 23,
											"value": "253"
										},
										{
											"begin": 21313,
											"end": 21338,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "56"
										},
										{
											"begin": 21139,
											"end": 21352,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "tag",
											"source": 23,
											"value": "249"
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21105,
											"end": 21366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "53"
										},
										{
											"begin": 21105,
											"end": 21366,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "130"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "258"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "258"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15702,
											"end": 15724,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 15702,
											"end": 15724,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 15698,
											"end": 15789,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "261"
										},
										{
											"begin": 15698,
											"end": 15789,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 15798,
											"end": 15844,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "263"
										},
										{
											"begin": 735,
											"end": 745,
											"name": "SWAP1",
											"source": 16
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15798,
											"end": 15816,
											"name": "PUSH",
											"source": 9,
											"value": "7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15798,
											"end": 15844,
											"name": "tag",
											"source": 9,
											"value": "263"
										},
										{
											"begin": 15798,
											"end": 15844,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15859,
											"end": 15900,
											"name": "PUSH",
											"source": 9,
											"value": "17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 15859,
											"end": 15900,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 15859,
											"end": 15900,
											"name": "LOG3",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 15698,
											"end": 15789,
											"name": "tag",
											"source": 9,
											"value": "261"
										},
										{
											"begin": 15698,
											"end": 15789,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "B611743"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 15747,
											"end": 15778,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 15747,
											"end": 15778,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 15747,
											"end": 15778,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 15747,
											"end": 15778,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15747,
											"end": 15778,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "128"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "126"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "272"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "272"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17483,
											"end": 17493,
											"name": "PUSH",
											"source": 23,
											"value": "A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 17503,
											"end": 17524,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17503,
											"end": 17524,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "tag",
											"source": 23,
											"value": "273"
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "274"
										},
										{
											"begin": 17589,
											"end": 17606,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "276"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "49"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "276"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "277"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "277"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "278"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "49"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "278"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "279"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "280"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "tag",
											"source": 23,
											"value": "282"
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "283"
										},
										{
											"begin": 17811,
											"end": 17829,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "285"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "286"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "286"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "285"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "tag",
											"source": 23,
											"value": "283"
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17648,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17870,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17657,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 17854,
											"end": 17870,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17870,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17878,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17878,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17878,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 17854,
											"end": 17878,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "288"
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "tag",
											"source": 23,
											"value": "289"
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "290"
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 17831,
											"end": 17834,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "tag",
											"source": 23,
											"value": "290"
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "282"
										},
										{
											"begin": 17796,
											"end": 17809,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "tag",
											"source": 23,
											"value": "288"
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "291"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "291"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "292"
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "50"
										},
										{
											"begin": 18001,
											"end": 18034,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "tag",
											"source": 23,
											"value": "292"
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "293"
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "50"
										},
										{
											"begin": 18001,
											"end": 18034,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "tag",
											"source": 23,
											"value": "293"
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18001,
											"end": 18034,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "294"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18052,
											"end": 18069,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 17831,
											"end": 17834,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "290"
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "289"
										},
										{
											"begin": 17850,
											"end": 18084,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "294"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "280"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "296"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "296"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "279"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "tag",
											"source": 23,
											"value": "274"
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17648,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17657,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17657,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 17641,
											"end": 17665,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "297"
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "tag",
											"source": 23,
											"value": "298"
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "299"
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 17608,
											"end": 17611,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "tag",
											"source": 23,
											"value": "299"
										},
										{
											"begin": 17608,
											"end": 17611,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "273"
										},
										{
											"begin": 17574,
											"end": 17587,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "tag",
											"source": 23,
											"value": "297"
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "294"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17685,
											"end": 17699,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "298"
										},
										{
											"begin": 17637,
											"end": 17714,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "124"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "306"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "306"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "307"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "309"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "310"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "309"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "313"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "314"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "310"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "314"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "313"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "307"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "310"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "122"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "320"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "320"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1710,
											"end": 1716,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "118"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "331"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "331"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 5831,
											"end": 5922,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 5831,
											"end": 5922,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5799,
											"end": 5812,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "332"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "334"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 5799,
											"end": 5812,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "334"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "335"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "335"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "332"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "41"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "116"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "243"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "32"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "114"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 20964,
											"end": 20986,
											"name": "PUSH",
											"source": 23,
											"value": "C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "112"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "110"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "354"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "354"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8760,
											"end": 8789,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "357"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "359"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "758DDFDD"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "34"
										},
										{
											"begin": 8661,
											"end": 8817,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "tag",
											"source": 23,
											"value": "359"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "398"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "362"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "363"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 8926,
											"end": 8941,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 8926,
											"end": 8941,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 8926,
											"end": 8941,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "364"
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "365"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 9278,
											"end": 9308,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "366"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 9278,
											"end": 9308,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "47"
										},
										{
											"begin": 9278,
											"end": 9308,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9278,
											"end": 9308,
											"name": "tag",
											"source": 23,
											"value": "366"
										},
										{
											"begin": 9278,
											"end": 9308,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "367"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 9350,
											"end": 9371,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "tag",
											"source": 23,
											"value": "367"
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9350,
											"end": 9371,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 9549,
											"end": 9564,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "368"
										},
										{
											"begin": 9549,
											"end": 9564,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "31"
										},
										{
											"begin": 9549,
											"end": 9564,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9549,
											"end": 9564,
											"name": "tag",
											"source": 23,
											"value": "368"
										},
										{
											"begin": 9549,
											"end": 9564,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9674,
											"end": 9697,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "369"
										},
										{
											"begin": 9674,
											"end": 9697,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "32"
										},
										{
											"begin": 9674,
											"end": 9697,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9674,
											"end": 9697,
											"name": "tag",
											"source": 23,
											"value": "369"
										},
										{
											"begin": 9674,
											"end": 9697,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9742,
											"end": 9746,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 9742,
											"end": 9746,
											"name": "PUSH",
											"source": 23,
											"value": "2540BE400"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "372"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "372"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9862,
											"end": 9907,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "374"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 9864,
											"end": 9893,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "375"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 9864,
											"end": 9893,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 9864,
											"end": 9893,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 9864,
											"end": 9893,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9864,
											"end": 9893,
											"name": "tag",
											"source": 23,
											"value": "375"
										},
										{
											"begin": 9864,
											"end": 9893,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 9862,
											"end": 9907,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 9862,
											"end": 9907,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9862,
											"end": 9907,
											"name": "tag",
											"source": 23,
											"value": "374"
										},
										{
											"begin": 9862,
											"end": 9907,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "376"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70A08231"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "463"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "380"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "tag",
											"source": 23,
											"value": "381"
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10106,
											"end": 10110,
											"name": "PUSH",
											"source": 23,
											"value": "E8D4A51000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "GT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "382"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "tag",
											"source": 23,
											"value": "384"
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10727,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "C1665499"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "467"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "387"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "tag",
											"source": 23,
											"value": "388"
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "22B76FCF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E2"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "467"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10904,
											"end": 10927,
											"name": "PUSH",
											"source": 23,
											"value": "1E0"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "391"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "tag",
											"source": 23,
											"value": "392"
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10904,
											"end": 10927,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10904,
											"end": 10927,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 10956,
											"end": 10969,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "tag",
											"source": 23,
											"value": "393"
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "394"
										},
										{
											"begin": 10971,
											"end": 10981,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10727,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "402"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "47F6682B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "398"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "400"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10951,
											"end": 13231,
											"name": "tag",
											"source": 23,
											"value": "401"
										},
										{
											"begin": 10951,
											"end": 13231,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "402"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "41B2819"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "404"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "404"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "405"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "407"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "tag",
											"source": 23,
											"value": "407"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "409"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 13425,
											"end": 13482,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "tag",
											"source": 23,
											"value": "409"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "tag",
											"source": 23,
											"value": "405"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "tag",
											"source": 23,
											"value": "402"
										},
										{
											"begin": 13425,
											"end": 13482,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "tag",
											"source": 23,
											"value": "400"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "412"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 13302,
											"end": 13366,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "tag",
											"source": 23,
											"value": "412"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "413"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "401"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "413"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "tag",
											"source": 23,
											"value": "398"
										},
										{
											"begin": 13302,
											"end": 13366,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "tag",
											"source": 23,
											"value": "394"
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 11063,
											"end": 11081,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 11265,
											"end": 11294,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "415"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11265,
											"end": 11294,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 11265,
											"end": 11294,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 11265,
											"end": 11294,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11265,
											"end": 11294,
											"name": "tag",
											"source": 23,
											"value": "415"
										},
										{
											"begin": 11265,
											"end": 11294,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "416"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 11378,
											"end": 11393,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 11378,
											"end": 11393,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 11378,
											"end": 11393,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "418"
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "tag",
											"source": 23,
											"value": "419"
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 11972,
											"end": 11984,
											"name": "PUSH",
											"source": 23,
											"value": "B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 21105,
											"end": 21366,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "421"
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "249"
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "423"
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "424"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "52"
										},
										{
											"begin": 21209,
											"end": 21234,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "tag",
											"source": 23,
											"value": "424"
										},
										{
											"begin": 21209,
											"end": 21234,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "252"
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 21252,
											"end": 21277,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "52"
										},
										{
											"begin": 21252,
											"end": 21277,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "tag",
											"source": 23,
											"value": "423"
										},
										{
											"begin": 21174,
											"end": 21295,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 21139,
											"end": 21352,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "55"
										},
										{
											"begin": 21139,
											"end": 21352,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 21105,
											"end": 21366,
											"name": "tag",
											"source": 23,
											"value": "421"
										},
										{
											"begin": 21105,
											"end": 21366,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "426"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12230,
											"end": 12246,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12230,
											"end": 12246,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12230,
											"end": 12246,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "428"
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "tag",
											"source": 23,
											"value": "429"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "430"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "tag",
											"source": 23,
											"value": "431"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13205,
											"end": 13219,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "432"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 13205,
											"end": 13219,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "45"
										},
										{
											"begin": 13205,
											"end": 13219,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 13205,
											"end": 13219,
											"name": "tag",
											"source": 23,
											"value": "432"
										},
										{
											"begin": 13205,
											"end": 13219,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 10983,
											"end": 10986,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "tag",
											"source": 23,
											"value": "430"
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10956,
											"end": 10969,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "393"
										},
										{
											"begin": 10956,
											"end": 10969,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "tag",
											"source": 23,
											"value": "428"
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12407,
											"end": 12411,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12407,
											"end": 12411,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "433"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "434"
										},
										{
											"begin": 12407,
											"end": 12411,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "435"
										},
										{
											"begin": 12407,
											"end": 12411,
											"name": "PUSH",
											"source": 23,
											"value": "E8D4A51000"
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "41"
										},
										{
											"begin": 12385,
											"end": 12405,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "tag",
											"source": 23,
											"value": "435"
										},
										{
											"begin": 12385,
											"end": 12405,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "42"
										},
										{
											"begin": 12455,
											"end": 12482,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "tag",
											"source": 23,
											"value": "433"
										},
										{
											"begin": 12455,
											"end": 12482,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "23B872DD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "434"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "436"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "438"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "tag",
											"source": 23,
											"value": "439"
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 12660,
											"end": 12684,
											"name": "PUSH",
											"source": 23,
											"value": "D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "23B872DD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8726,
											"end": 8736,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "440"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "441"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "443"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "tag",
											"source": 23,
											"value": "444"
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "429"
										},
										{
											"begin": 12226,
											"end": 12736,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "443"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "445"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "446"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "447"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 12626,
											"end": 12695,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "447"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "448"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "450"
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "430"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "450"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "444"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "448"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "445"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "446"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "tag",
											"source": 23,
											"value": "441"
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "438"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "451"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "452"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "453"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 12531,
											"end": 12604,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "453"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "454"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12626,
											"end": 12695,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "440"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "456"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "456"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "439"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "454"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "451"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "452"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "tag",
											"source": 23,
											"value": "436"
										},
										{
											"begin": 12531,
											"end": 12604,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "tag",
											"source": 23,
											"value": "426"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "457"
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "458"
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "41"
										},
										{
											"begin": 12812,
											"end": 12832,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "tag",
											"source": 23,
											"value": "457"
										},
										{
											"begin": 12812,
											"end": 12832,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "42"
										},
										{
											"begin": 12871,
											"end": 12898,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "tag",
											"source": 23,
											"value": "458"
										},
										{
											"begin": 12871,
											"end": 12898,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12949,
											"end": 12965,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12949,
											"end": 12965,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "459"
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "tag",
											"source": 23,
											"value": "460"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10983,
											"end": 10986,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "430"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "431"
										},
										{
											"begin": 12175,
											"end": 13155,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "tag",
											"source": 23,
											"value": "459"
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "461"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "tag",
											"source": 23,
											"value": "462"
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "463"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13077,
											"end": 13101,
											"name": "PUSH",
											"source": 23,
											"value": "D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "465"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "tag",
											"source": 23,
											"value": "466"
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "467"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "460"
										},
										{
											"begin": 12945,
											"end": 13141,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "tag",
											"source": 23,
											"value": "467"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "tag",
											"source": 23,
											"value": "465"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "PUSH",
											"source": 23,
											"value": "8FC"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "466"
										},
										{
											"begin": 13069,
											"end": 13122,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "tag",
											"source": 23,
											"value": "463"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "tag",
											"source": 23,
											"value": "461"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "PUSH",
											"source": 23,
											"value": "8FC"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "462"
										},
										{
											"begin": 12989,
											"end": 13046,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "tag",
											"source": 23,
											"value": "418"
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 11425,
											"end": 11449,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "469"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11425,
											"end": 11449,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 11425,
											"end": 11449,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 11425,
											"end": 11449,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11425,
											"end": 11449,
											"name": "tag",
											"source": 23,
											"value": "469"
										},
										{
											"begin": 11425,
											"end": 11449,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "419"
										},
										{
											"begin": 11374,
											"end": 11495,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "tag",
											"source": 23,
											"value": "416"
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 11569,
											"end": 11588,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "470"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11569,
											"end": 11588,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 11569,
											"end": 11588,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "28"
										},
										{
											"begin": 11569,
											"end": 11588,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11569,
											"end": 11588,
											"name": "tag",
											"source": 23,
											"value": "470"
										},
										{
											"begin": 11569,
											"end": 11588,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "476"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 11612,
											"end": 11640,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 11662,
											"end": 11677,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "419"
										},
										{
											"begin": 11658,
											"end": 11862,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 11724,
											"end": 11748,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "475"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11724,
											"end": 11748,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 11724,
											"end": 11748,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 11724,
											"end": 11748,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11724,
											"end": 11748,
											"name": "tag",
											"source": 23,
											"value": "475"
										},
										{
											"begin": 11724,
											"end": 11748,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "476"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 11809,
											"end": 11837,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "478"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11809,
											"end": 11837,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 11809,
											"end": 11837,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "28"
										},
										{
											"begin": 11809,
											"end": 11837,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 11809,
											"end": 11837,
											"name": "tag",
											"source": 23,
											"value": "478"
										},
										{
											"begin": 11809,
											"end": 11837,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 11839,
											"end": 11843,
											"name": "PUSH",
											"source": 23,
											"value": "2386F26FC10000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "479"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 11658,
											"end": 11862,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "419"
										},
										{
											"begin": 11315,
											"end": 11876,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "479"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "476"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "tag",
											"source": 23,
											"value": "391"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "481"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "482"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 10694,
											"end": 10785,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "tag",
											"source": 23,
											"value": "482"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "39"
										},
										{
											"begin": 10694,
											"end": 10785,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "tag",
											"source": 23,
											"value": "481"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "392"
										},
										{
											"begin": 10694,
											"end": 10785,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "tag",
											"source": 23,
											"value": "387"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "483"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "tag",
											"source": 23,
											"value": "484"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "485"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 10714,
											"end": 10751,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "tag",
											"source": 23,
											"value": "485"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "486"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "488"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "488"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "388"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "486"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "tag",
											"source": 23,
											"value": "483"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "484"
										},
										{
											"begin": 10714,
											"end": 10751,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "382"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "18"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E6F7420656E6F7567687420455243323020746F207061790000000000000000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "tag",
											"source": 23,
											"value": "380"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "489"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "tag",
											"source": 23,
											"value": "490"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "491"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 10259,
											"end": 10289,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "tag",
											"source": 23,
											"value": "491"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "492"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10106,
											"end": 10110,
											"name": "PUSH",
											"source": 23,
											"value": "E8D4A51000"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "381"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "492"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "tag",
											"source": 23,
											"value": "489"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "490"
										},
										{
											"begin": 10259,
											"end": 10289,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "tag",
											"source": 23,
											"value": "376"
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 10395,
											"end": 10416,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "494"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 10395,
											"end": 10416,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10395,
											"end": 10416,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "28"
										},
										{
											"begin": 10395,
											"end": 10416,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 10395,
											"end": 10416,
											"name": "tag",
											"source": 23,
											"value": "494"
										},
										{
											"begin": 10395,
											"end": 10416,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 9895,
											"end": 9899,
											"name": "PUSH",
											"source": 23,
											"value": "DE0B6B3A7640000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "495"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 10553,
											"end": 10562,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 10553,
											"end": 10582,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 9917,
											"end": 10615,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "384"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6E6F7420656E6F756768206D6F6E6579"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "495"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "372"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "tag",
											"source": 23,
											"value": "364"
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 9011,
											"end": 9024,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 9001,
											"end": 9031,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 9001,
											"end": 9031,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "499"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 9092,
											"end": 9116,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "501"
										},
										{
											"begin": 9092,
											"end": 9116,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 9092,
											"end": 9116,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 9092,
											"end": 9116,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 9092,
											"end": 9116,
											"name": "tag",
											"source": 23,
											"value": "501"
										},
										{
											"begin": 9092,
											"end": 9116,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "502"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "502"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "503"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "365"
										},
										{
											"begin": 8951,
											"end": 9236,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "503"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "10DC9E5C1D1BC81B9BDD081CDD5C1C1BDC9D1959"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "62"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "499"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8686,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "10DC9E5C1D1BC81A59081A5B9D985B1A59"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "7A"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "tag",
											"source": 23,
											"value": "362"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "505"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 8661,
											"end": 8817,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "tag",
											"source": 23,
											"value": "505"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "363"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "tag",
											"source": 23,
											"value": "357"
										},
										{
											"begin": 8661,
											"end": 8817,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "108"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 20706,
											"end": 20719,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "106"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "516"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "22"
										},
										{
											"begin": 1500,
											"end": 1562,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "tag",
											"source": 3,
											"value": "516"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 3004,
											"end": 3010,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 3052,
											"end": 3092,
											"name": "PUSH",
											"source": 3,
											"value": "8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 3052,
											"end": 3092,
											"name": "LOG3",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "104"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "521"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "521"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2010,
											"end": 2029,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 2010,
											"end": 2029,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 2006,
											"end": 2093,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "522"
										},
										{
											"begin": 2006,
											"end": 2093,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2109,
											"end": 2118,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 2006,
											"end": 2093,
											"name": "tag",
											"source": 9,
											"value": "522"
										},
										{
											"begin": 2006,
											"end": 2093,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "22718AD9"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E2"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 2052,
											"end": 2082,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 2052,
											"end": 2082,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 2052,
											"end": 2082,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 2052,
											"end": 2082,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2052,
											"end": 2082,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "102"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "530"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "530"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "531"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "531"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 1710,
											"end": 1716,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2602,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "532"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "533"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "534"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "33"
										},
										{
											"begin": 2573,
											"end": 2665,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "tag",
											"source": 23,
											"value": "534"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14135,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3E30DCF9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "535"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "535"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "467"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "538"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "539"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14186,
											"end": 14204,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 14186,
											"end": 14204,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 14186,
											"end": 14204,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14186,
											"end": 14204,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "540"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 14305,
											"end": 14331,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 14305,
											"end": 14331,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14305,
											"end": 14331,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 14332,
											"end": 14347,
											"name": "TIMESTAMP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "GT",
											"source": -1
										},
										{
											"begin": 14302,
											"end": 14426,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "542"
										},
										{
											"begin": 14302,
											"end": 14426,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 14517,
											"end": 14535,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 14517,
											"end": 14535,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 14517,
											"end": 14535,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 14569,
											"end": 14593,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14569,
											"end": 14593,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 14630,
											"end": 14659,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "544"
										},
										{
											"begin": 14630,
											"end": 14659,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14630,
											"end": 14659,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "47"
										},
										{
											"begin": 14630,
											"end": 14659,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14630,
											"end": 14659,
											"name": "tag",
											"source": 23,
											"value": "544"
										},
										{
											"begin": 14630,
											"end": 14659,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14683,
											"end": 14696,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "tag",
											"source": 23,
											"value": "545"
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "546"
										},
										{
											"begin": 14698,
											"end": 14708,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14859,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "486"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "47F6682B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "550"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "552"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 14678,
											"end": 14783,
											"name": "tag",
											"source": 23,
											"value": "553"
										},
										{
											"begin": 14678,
											"end": 14783,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14135,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "554"
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "404"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "41B2819"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "tag",
											"source": 23,
											"value": "554"
										},
										{
											"begin": 14963,
											"end": 15020,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "tag",
											"source": 23,
											"value": "552"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "564"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 14846,
											"end": 14909,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "tag",
											"source": 23,
											"value": "564"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "554"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "553"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "tag",
											"source": 23,
											"value": "550"
										},
										{
											"begin": 14846,
											"end": 14909,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 14710,
											"end": 14713,
											"name": "tag",
											"source": 23,
											"value": "546"
										},
										{
											"begin": 14710,
											"end": 14713,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14710,
											"end": 14713,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "567"
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "432"
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 14757,
											"end": 14771,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "45"
										},
										{
											"begin": 14757,
											"end": 14771,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14710,
											"end": 14713,
											"name": "tag",
											"source": 23,
											"value": "567"
										},
										{
											"begin": 14710,
											"end": 14713,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14683,
											"end": 14696,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "545"
										},
										{
											"begin": 14683,
											"end": 14696,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14302,
											"end": 14426,
											"name": "tag",
											"source": 23,
											"value": "542"
										},
										{
											"begin": 14302,
											"end": 14426,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 14386,
											"end": 14415,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14386,
											"end": 14415,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 14386,
											"end": 14415,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14386,
											"end": 14415,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "14995CD95C9D985D1A5BDB88195E1C1A5C9959"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6A"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14386,
											"end": 14415,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "540"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "496E76616C6964207265736572766174696F6E206E756D626572000000000000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "tag",
											"source": 23,
											"value": "538"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "569"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 14110,
											"end": 14168,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "tag",
											"source": 23,
											"value": "569"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "492"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "448"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "492"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "576"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "576"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "448"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "579"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "580"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "579"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "581"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "581"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "582"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "582"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "580"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "539"
										},
										{
											"begin": 14110,
											"end": 14168,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "tag",
											"source": 23,
											"value": "532"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "534"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "533"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "587"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "587"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 1710,
											"end": 1716,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2602,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "588"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "589"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "590"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "33"
										},
										{
											"begin": 2573,
											"end": 2665,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "tag",
											"source": 23,
											"value": "590"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15170,
											"end": 15199,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "591"
										},
										{
											"begin": 15170,
											"end": 15199,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 15170,
											"end": 15199,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "47"
										},
										{
											"begin": 15170,
											"end": 15199,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15170,
											"end": 15199,
											"name": "tag",
											"source": 23,
											"value": "591"
										},
										{
											"begin": 15170,
											"end": 15199,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15215,
											"end": 15228,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "tag",
											"source": 23,
											"value": "592"
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "593"
										},
										{
											"begin": 15230,
											"end": 15240,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15391,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "554"
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "47F6682B"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "405"
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "407"
										},
										{
											"begin": 15378,
											"end": 15441,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 15242,
											"end": 15245,
											"name": "tag",
											"source": 23,
											"value": "593"
										},
										{
											"begin": 15242,
											"end": 15245,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15242,
											"end": 15245,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "604"
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "432"
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 15289,
											"end": 15303,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "45"
										},
										{
											"begin": 15289,
											"end": 15303,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15242,
											"end": 15245,
											"name": "tag",
											"source": 23,
											"value": "604"
										},
										{
											"begin": 15242,
											"end": 15245,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15215,
											"end": 15228,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "592"
										},
										{
											"begin": 15215,
											"end": 15228,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "tag",
											"source": 23,
											"value": "588"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "590"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "589"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "98"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "23"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1710,
											"end": 1716,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2602,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "618"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "619"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "620"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "33"
										},
										{
											"begin": 2573,
											"end": 2665,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "tag",
											"source": 23,
											"value": "620"
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 6612,
											"end": 6629,
											"name": "PUSH",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "621"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "621"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "622"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "623"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "624"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "626"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "627"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "626"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "627"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "624"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "629"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "630"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "632"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "633"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "632"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "633"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "630"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "629"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "622"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "634"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "635"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "636"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "637"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "623"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "637"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "636"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "634"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "635"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "tag",
											"source": 23,
											"value": "618"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2591,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2573,
											"end": 2665,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "620"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "619"
										},
										{
											"begin": 2581,
											"end": 2637,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "96"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 2278,
											"end": 2300,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "643"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 2278,
											"end": 2300,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "24"
										},
										{
											"begin": 2278,
											"end": 2300,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 2278,
											"end": 2300,
											"name": "tag",
											"source": 9,
											"value": "643"
										},
										{
											"begin": 2278,
											"end": 2300,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "94"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "650"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "650"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13715,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 13759,
											"end": 13769,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 13793,
											"end": 13822,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "357"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "653"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "758DDFDD"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 13759,
											"end": 13769,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 13759,
											"end": 13769,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "34"
										},
										{
											"begin": 13690,
											"end": 13850,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "tag",
											"source": 23,
											"value": "653"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "405"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "656"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "tag",
											"source": 23,
											"value": "656"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "233"
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 13690,
											"end": 13850,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 13690,
											"end": 13850,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "92"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "PUSH",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 1993,
											"end": 2034,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "90"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 17310,
											"end": 17320,
											"name": "PUSH",
											"source": 23,
											"value": "A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "88"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2040,
											"end": 2091,
											"name": "PUSH",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "86"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 5185,
											"end": 5189,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "233"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "676"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "676"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "677"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "677"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "234"
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 5125,
											"end": 5132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "51"
										},
										{
											"begin": 5125,
											"end": 5132,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "683"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "22"
										},
										{
											"begin": 1500,
											"end": 1562,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "tag",
											"source": 3,
											"value": "683"
										},
										{
											"begin": 1500,
											"end": 1562,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 19313,
											"end": 19334,
											"name": "SELFBALANCE",
											"source": 23
										},
										{
											"begin": 19352,
											"end": 19363,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 19352,
											"end": 19363,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "684"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 19471,
											"end": 19493,
											"name": "PUSH",
											"source": 23,
											"value": "C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "686"
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "25"
										},
										{
											"begin": 19463,
											"end": 19519,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "tag",
											"source": 23,
											"value": "686"
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 19463,
											"end": 19519,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "687"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "687"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "2A3930B739B332B9103330B4B632B217"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "81"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "684"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "19"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E6F206574686572206C65667420746F20776974686472617700000000000000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "82"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "693"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "693"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 5421,
											"end": 5455,
											"name": "SUB",
											"source": 1
										},
										{
											"begin": 5417,
											"end": 5519,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "694"
										},
										{
											"begin": 5417,
											"end": 5519,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 5529,
											"end": 5566,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "201"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 5529,
											"end": 5566,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "21"
										},
										{
											"begin": 5529,
											"end": 5566,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 5417,
											"end": 5519,
											"name": "tag",
											"source": 1,
											"value": "694"
										},
										{
											"begin": 5417,
											"end": 5519,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "334BD919"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 5478,
											"end": 5508,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 5478,
											"end": 5508,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 5478,
											"end": 5508,
											"name": "REVERT",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 4330,
											"end": 4355,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "201"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "702"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "702"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3907,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "703"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3923,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 2475,
											"end": 2479,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "tag",
											"source": 1,
											"value": "703"
										},
										{
											"begin": 2475,
											"end": 2479,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 4330,
											"end": 4355,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 4330,
											"end": 4355,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "78"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "708"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "708"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2563,
											"end": 2593,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "709"
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "710"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2696,
											"end": 2719,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2710"
										},
										{
											"begin": 2684,
											"end": 2719,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "711"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 2696,
											"end": 2719,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2696,
											"end": 2719,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 2684,
											"end": 2719,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "27"
										},
										{
											"begin": 2684,
											"end": 2719,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 13
										},
										{
											"begin": 2684,
											"end": 2719,
											"name": "tag",
											"source": 13,
											"value": "711"
										},
										{
											"begin": 2684,
											"end": 2719,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "tag",
											"source": 13,
											"value": "709"
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "713"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "713"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "710"
										},
										{
											"begin": 2559,
											"end": 2649,
											"name": "JUMP",
											"source": 13
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "76"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "720"
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 1592,
											"end": 1624,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "tag",
											"source": 23,
											"value": "720"
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "74"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 20833,
											"end": 20853,
											"name": "PUSH",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "72"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3907,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 3901,
											"end": 3923,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "233"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "732"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "732"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "51"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "68"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 6484,
											"end": 6505,
											"name": "SELFBALANCE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "66"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "741"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "741"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 14947,
											"end": 14969,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "742"
										},
										{
											"begin": 14947,
											"end": 14969,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 14947,
											"end": 14969,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "24"
										},
										{
											"begin": 14947,
											"end": 14969,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 14947,
											"end": 14969,
											"name": "tag",
											"source": 9,
											"value": "742"
										},
										{
											"begin": 14947,
											"end": 14969,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 15097,
											"end": 15115,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15115,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "743"
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "744"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "745"
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "746"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15093,
											"end": 15235,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "747"
										},
										{
											"begin": 15093,
											"end": 15235,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 15287,
											"end": 15315,
											"name": "PUSH",
											"source": 9,
											"value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
										},
										{
											"begin": 15287,
											"end": 15315,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 15287,
											"end": 15315,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 15287,
											"end": 15315,
											"name": "LOG4",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15350,
											"end": 15365,
											"name": "PUSH",
											"source": 9,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 15093,
											"end": 15235,
											"name": "tag",
											"source": 9,
											"value": "747"
										},
										{
											"begin": 15093,
											"end": 15235,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A9FBF51F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 15193,
											"end": 15220,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 15193,
											"end": 15220,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 15193,
											"end": 15220,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 15193,
											"end": 15220,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15193,
											"end": 15220,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "tag",
											"source": 9,
											"value": "745"
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 4043,
											"end": 4061,
											"name": "PUSH",
											"source": 9,
											"value": "7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 15136,
											"end": 15166,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "746"
										},
										{
											"begin": 15097,
											"end": 15166,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "tag",
											"source": 9,
											"value": "743"
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 15119,
											"end": 15132,
											"name": "EQ",
											"source": 9
										},
										{
											"begin": 15119,
											"end": 15132,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "744"
										},
										{
											"begin": 15097,
											"end": 15132,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "753"
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "24"
										},
										{
											"begin": 3587,
											"end": 3609,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "tag",
											"source": 9,
											"value": "753"
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 3587,
											"end": 3609,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 6038,
											"end": 6053,
											"name": "PUSH",
											"source": 9,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "62"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 2446,
											"end": 2451,
											"name": "PUSH",
											"source": 9,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "758"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "758"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "759"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "761"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "762"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "761"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2446,
											"end": 2451,
											"name": "PUSH",
											"source": 9,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "765"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "766"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "762"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "766"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "765"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "759"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "216"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "217"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "762"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLVALUE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FFFFFFFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "329"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "152A902D"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 20530,
											"end": 20566,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20566,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "774"
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "775"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURN",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "tag",
											"source": 23,
											"value": "774"
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "7965DB0B"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 2673,
											"end": 2720,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2720,
											"name": "EQ",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2720,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "776"
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "tag",
											"source": 23,
											"value": "777"
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "775"
										},
										{
											"begin": 20530,
											"end": 20606,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "tag",
											"source": 1,
											"value": "776"
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80AC58CD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1702,
											"end": 1742,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1742,
											"name": "EQ",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1742,
											"name": "SWAP4",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 1717,
											"end": 1742,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 1717,
											"end": 1742,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "778"
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "tag",
											"source": 1,
											"value": "779"
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "780"
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "tag",
											"source": 1,
											"value": "781"
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "777"
										},
										{
											"begin": 2673,
											"end": 2760,
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "tag",
											"source": 9,
											"value": "780"
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "782"
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "tag",
											"source": 9,
											"value": "783"
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "781"
										},
										{
											"begin": 1702,
											"end": 1858,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "tag",
											"source": 13,
											"value": "782"
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1FFC9A7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 861,
											"end": 901,
											"name": "EQ",
											"source": 18
										},
										{
											"begin": 861,
											"end": 901,
											"name": "SWAP1",
											"source": 18
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "783"
										},
										{
											"begin": 2241,
											"end": 2322,
											"name": "JUMP",
											"source": 13
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "tag",
											"source": 9,
											"value": "778"
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "5B5E139F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1758,
											"end": 1806,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 1758,
											"end": 1806,
											"name": "EQ",
											"source": 9
										},
										{
											"begin": 1758,
											"end": 1806,
											"name": "SWAP4",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "779"
										},
										{
											"begin": 1702,
											"end": 1806,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "784"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "785"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "785"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "784"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "787"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "787"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "798"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 1592,
											"end": 1624,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "BB8A6A4669BA250D26CD7A459ECA9D215F8307E33AEBE50379BC5A3617EC3444"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "798"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "32"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "800"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "801"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "802"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "802"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "22"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "800"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "7F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "801"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "41"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "814"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "814"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "815"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "817"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "818"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "819"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "819"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "817"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "820"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "821"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "819"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "818"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "821"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "820"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "815"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "819"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "818"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "825"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "825"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "826"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "826"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATALOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 3199,
											"end": 3302,
											"name": "tag",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 3199,
											"end": 3302,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 3519,
											"end": 3542,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 3515,
											"end": 3623,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "832"
										},
										{
											"begin": 3515,
											"end": 3623,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 3199,
											"end": 3302,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 3199,
											"end": 3302,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 3515,
											"end": 3623,
											"name": "tag",
											"source": 1,
											"value": "832"
										},
										{
											"begin": 3515,
											"end": 3623,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "PUSH",
											"source": 1,
											"value": "E2517D3F"
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "PUSH",
											"source": 1,
											"value": "E0"
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "SHL",
											"source": 1
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "PUSH",
											"source": 1,
											"value": "4"
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 3565,
											"end": 3612,
											"name": "REVERT",
											"source": 1
										},
										{
											"begin": 6179,
											"end": 6495,
											"name": "tag",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 6179,
											"end": 6495,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 6179,
											"end": 6495,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 6276,
											"end": 6299,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 6272,
											"end": 6489,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "834"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 6370,
											"end": 6410,
											"name": "PUSH",
											"source": 1,
											"value": "2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D"
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 6370,
											"end": 6410,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 6370,
											"end": 6410,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 6370,
											"end": 6410,
											"name": "LOG4",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 6424,
											"end": 6435,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 6424,
											"end": 6435,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 6272,
											"end": 6489,
											"name": "tag",
											"source": 1,
											"value": "834"
										},
										{
											"begin": 6272,
											"end": 6489,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 6466,
											"end": 6478,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 6466,
											"end": 6478,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 6466,
											"end": 6478,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 6466,
											"end": 6478,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 6730,
											"end": 7047,
											"name": "tag",
											"source": 1,
											"value": "21"
										},
										{
											"begin": 6730,
											"end": 7047,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 6730,
											"end": 7047,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 6824,
											"end": 7041,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "834"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 6922,
											"end": 6962,
											"name": "PUSH",
											"source": 1,
											"value": "F6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B"
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 6922,
											"end": 6962,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 6922,
											"end": 6962,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 6922,
											"end": 6962,
											"name": "LOG4",
											"source": 1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 6976,
											"end": 6987,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 6976,
											"end": 6987,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1796,
											"end": 1958,
											"name": "tag",
											"source": 3,
											"value": "22"
										},
										{
											"begin": 1796,
											"end": 1958,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 1710,
											"end": 1716,
											"name": "PUSH",
											"source": 3,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 1855,
											"end": 1878,
											"name": "SUB",
											"source": 3
										},
										{
											"begin": 1851,
											"end": 1952,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "838"
										},
										{
											"begin": 1851,
											"end": 1952,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 1796,
											"end": 1958,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 1851,
											"end": 1952,
											"name": "tag",
											"source": 3,
											"value": "838"
										},
										{
											"begin": 1851,
											"end": 1952,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "118CDAA7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "PUSH",
											"source": 3,
											"value": "4"
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 1901,
											"end": 1941,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 16142,
											"end": 16383,
											"name": "tag",
											"source": 9,
											"value": "24"
										},
										{
											"begin": 16142,
											"end": 16383,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16271,
											"end": 16290,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 16271,
											"end": 16290,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 16267,
											"end": 16355,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "840"
										},
										{
											"begin": 16267,
											"end": 16355,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 16364,
											"end": 16376,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 16142,
											"end": 16383,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 16142,
											"end": 16383,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 16267,
											"end": 16355,
											"name": "tag",
											"source": 9,
											"value": "840"
										},
										{
											"begin": 16267,
											"end": 16355,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "PUSH",
											"source": 9,
											"value": "7E273289"
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "PUSH",
											"source": 9,
											"value": "E0"
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "SHL",
											"source": 9
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "25"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "842"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "844"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "844"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "845"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "845"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "842"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "tag",
											"source": 9,
											"value": "26"
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17038,
											"end": 17052,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17038,
											"end": 17052,
											"name": "EXTCODESIZE",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "847"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "tag",
											"source": 9,
											"value": "848"
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 16922,
											"end": 17704,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "tag",
											"source": 9,
											"value": "847"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "849"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A85BD01"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP7",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "849"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 17055,
											"end": 17056,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "20"
										},
										{
											"begin": 17055,
											"end": 17056,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17055,
											"end": 17056,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP4",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP9",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "GAS",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "CALL",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "850"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "tag",
											"source": 9,
											"value": "851"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "852"
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "854"
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "25"
										},
										{
											"begin": 17335,
											"end": 17688,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "tag",
											"source": 9,
											"value": "854"
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "855"
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "32505749"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17381,
											"end": 17674,
											"name": "tag",
											"source": 9,
											"value": "855"
										},
										{
											"begin": 17381,
											"end": 17674,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "20"
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "tag",
											"source": 9,
											"value": "852"
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 17194,
											"end": 17245,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "857"
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "848"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "tag",
											"source": 9,
											"value": "857"
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "PUSH",
											"source": 9,
											"value": "32505749"
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "PUSH",
											"source": 9,
											"value": "E1"
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "SHL",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "850"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "20"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "RETURNDATASIZE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "GT",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "859"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "860"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "861"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "20"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP4",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "13"
										},
										{
											"begin": 17076,
											"end": 17147,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "861"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "851"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "859"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "RETURNDATASIZE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "860"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "27"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "866"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "866"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "28"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "868"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "868"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "29"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "30"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "874"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "29"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "874"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "29"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2694,
											"end": 3013,
											"name": "tag",
											"source": 23,
											"value": "31"
										},
										{
											"begin": 2694,
											"end": 3013,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2965,
											"name": "PUSH",
											"source": 23,
											"value": "E"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3FABE5A3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E2"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "878"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 2993,
											"end": 3006,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2694,
											"end": 3013,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2694,
											"end": 3013,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "878"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "880"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "881"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "882"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "883"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 2957,
											"end": 2983,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "883"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "30"
										},
										{
											"begin": 2957,
											"end": 2983,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "880"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2694,
											"end": 3013,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 2694,
											"end": 3013,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "881"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "882"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "tag",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 2957,
											"end": 2983,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 3019,
											"end": 3323,
											"name": "tag",
											"source": 23,
											"value": "32"
										},
										{
											"begin": 3019,
											"end": 3323,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3275,
											"name": "PUSH",
											"source": 23,
											"value": "F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3FABE5A3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E2"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "878"
										},
										{
											"begin": 3262,
											"end": 3293,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 3303,
											"end": 3316,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 3019,
											"end": 3323,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 3019,
											"end": 3323,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "33"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "892"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "892"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4F6E6C792061646D696E732063616E20646F2074686174000000000000000000"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "34"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "894"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "894"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "36"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FFFFFFFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "903"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "903"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "904"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "904"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "39"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "916"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "36"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "916"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "917"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "36"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "917"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "918"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "918"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "919"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "919"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "160"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "920"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "920"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "180"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "921"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "200"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "921"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "220"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "922"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP15",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "922"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "240"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "925"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "925"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "260"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "928"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "928"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "280"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "931"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "931"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "940"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "940"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "943"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP15",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "943"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "946"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "946"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "949"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "949"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "952"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "952"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "955"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "955"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "958"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "958"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "961"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "961"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "964"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "964"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "967"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "967"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "970"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "970"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "973"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "973"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "976"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "976"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "979"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "979"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "982"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "982"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "866"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "41"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "866"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "42"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "866"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "995"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "995"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "998"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "998"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1003"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1003"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1006"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1006"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1007"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "37"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1007"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "tag",
											"source": 23,
											"value": "45"
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 6781,
											"end": 6791,
											"name": "PUSH",
											"source": 23,
											"value": "A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1010"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "12"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1010"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 10026,
											"end": 10042,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 10026,
											"end": 10042,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 10022,
											"end": 10109,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1011"
										},
										{
											"begin": 10022,
											"end": 10109,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1013"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "tag",
											"source": 23,
											"value": "1014"
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 9491,
											"end": 9500,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "PUSH",
											"source": 9,
											"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "DUP11",
											"source": 9
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "LOG4",
											"source": 9
										},
										{
											"begin": 10184,
											"end": 10280,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1015"
										},
										{
											"begin": 10184,
											"end": 10280,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17038,
											"end": 17052,
											"name": "EXTCODESIZE",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1017"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "tag",
											"source": 23,
											"value": "1018"
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6918,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5FC0CE1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1019"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1021"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1022"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "22"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 6977,
											"end": 7002,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1023"
										},
										{
											"begin": 6939,
											"end": 6970,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1024"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP10",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP15",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP10",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1025"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "tag",
											"source": 23,
											"value": "1026"
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6932,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6932,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 6939,
											"end": 6970,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 6939,
											"end": 6970,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "46"
										},
										{
											"begin": 6939,
											"end": 6970,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6939,
											"end": 6970,
											"name": "tag",
											"source": 23,
											"value": "1024"
										},
										{
											"begin": 6939,
											"end": 6970,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6977,
											"end": 7002,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 6977,
											"end": 7002,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "46"
										},
										{
											"begin": 6977,
											"end": 7002,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6977,
											"end": 7002,
											"name": "tag",
											"source": 23,
											"value": "1023"
										},
										{
											"begin": 6977,
											"end": 7002,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1027"
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1027"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1D"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "F9"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1028"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "21"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1028"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "21"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1029"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1029"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 6888,
											"end": 7003,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "tag",
											"source": 23,
											"value": "1022"
										},
										{
											"begin": 6888,
											"end": 7003,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1021"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1030"
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1032"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1032"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 7248,
											"end": 7263,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 7248,
											"end": 7263,
											"name": "TIMESTAMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7067,
											"end": 7074,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 9491,
											"end": 9500,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1033"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1033"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF00"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF00"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6918,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "EXTCODESIZE",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "B382AED"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "CALL",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1036"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1038"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "tag",
											"source": 23,
											"value": "1039"
										},
										{
											"begin": 6665,
											"end": 7667,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7414,
											"end": 7434,
											"name": "PUSH",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7525,
											"end": 7554,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1040"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7525,
											"end": 7554,
											"name": "PUSH",
											"source": 23,
											"value": "17"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 6781,
											"end": 6791,
											"name": "PUSH",
											"source": 23,
											"value": "A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1042"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 6781,
											"end": 6791,
											"name": "PUSH",
											"source": 23,
											"value": "A"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7624,
											"end": 7660,
											"name": "PUSH",
											"source": 23,
											"value": "756915DC79FBE0544CDE2132B389579561B584214B5BA2644E80D0BBB565047C"
										},
										{
											"begin": 7624,
											"end": 7660,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 7086,
											"end": 7322,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7624,
											"end": 7660,
											"name": "LOG1",
											"source": 23
										},
										{
											"begin": 6665,
											"end": 7667,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1042"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1040"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "11"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "tag",
											"source": 23,
											"value": "1038"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1044"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "9"
										},
										{
											"begin": 7336,
											"end": 7400,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "tag",
											"source": 23,
											"value": "1044"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1039"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "tag",
											"source": 23,
											"value": "1036"
										},
										{
											"begin": 7336,
											"end": 7400,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "tag",
											"source": 23,
											"value": "1030"
										},
										{
											"begin": 7035,
											"end": 7056,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "tag",
											"source": 23,
											"value": "1025"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1045"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1046"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 6905,
											"end": 6929,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "tag",
											"source": 23,
											"value": "1046"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 6905,
											"end": 6929,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "tag",
											"source": 23,
											"value": "1045"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1026"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "tag",
											"source": 23,
											"value": "1019"
										},
										{
											"begin": 6905,
											"end": 6929,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "tag",
											"source": 9,
											"value": "1017"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1047"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP15",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP15",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A85BD01"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP11",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP12",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1047"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "GAS",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "CALL",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1048"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "tag",
											"source": 9,
											"value": "1049"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1050"
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "DUP13",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "DUP13",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "DUP13",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "DUP13",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1052"
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "25"
										},
										{
											"begin": 17335,
											"end": 17688,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "tag",
											"source": 9,
											"value": "1052"
										},
										{
											"begin": 17335,
											"end": 17688,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1053"
										},
										{
											"begin": 17385,
											"end": 17403,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "32505749"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 17434,
											"end": 17459,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17381,
											"end": 17674,
											"name": "tag",
											"source": 9,
											"value": "1053"
										},
										{
											"begin": 17381,
											"end": 17674,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "SWAP3",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 17561,
											"end": 17656,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "tag",
											"source": 9,
											"value": "1050"
										},
										{
											"begin": 17072,
											"end": 17688,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP8",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 17194,
											"end": 17245,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1055"
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1018"
										},
										{
											"begin": 17034,
											"end": 17698,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "tag",
											"source": 9,
											"value": "1055"
										},
										{
											"begin": 17190,
											"end": 17320,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "32505749"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17276,
											"end": 17301,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "1048"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP14",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "RETURNDATASIZE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "GT",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1057"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "1058"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1059"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "13"
										},
										{
											"begin": 17076,
											"end": 17147,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "1059"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "486"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "486"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1049"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "tag",
											"source": 9,
											"value": "1057"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "RETURNDATASIZE",
											"source": 9
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1058"
										},
										{
											"begin": 17076,
											"end": 17147,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 10184,
											"end": 10280,
											"name": "tag",
											"source": 9,
											"value": "1015"
										},
										{
											"begin": 10184,
											"end": 10280,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "39E35637"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "DUP9",
											"source": 9
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10238,
											"end": 10269,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "tag",
											"source": 9,
											"value": "1013"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15350,
											"end": 15365,
											"name": "PUSH",
											"source": 9,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 9372,
											"end": 9381,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1014"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 10022,
											"end": 10109,
											"name": "tag",
											"source": 9,
											"value": "1011"
										},
										{
											"begin": 10022,
											"end": 10109,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "32505749"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 10065,
											"end": 10098,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "46"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 759,
											"end": 776,
											"name": "DUP1",
											"source": 17
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 12351,
											"end": 12359,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12351,
											"end": 12359,
											"name": "PUSH",
											"source": 20,
											"value": "184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000"
										},
										{
											"begin": 12342,
											"end": 12359,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 12342,
											"end": 12359,
											"name": "DUP3",
											"source": 20
										},
										{
											"begin": 12342,
											"end": 12359,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12342,
											"end": 12359,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1065"
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1066"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 12467,
											"end": 12475,
											"name": "POP",
											"source": 20
										},
										{
											"begin": 12467,
											"end": 12475,
											"name": "PUSH",
											"source": 20,
											"value": "4EE2D6D415B85ACEF8100000000"
										},
										{
											"begin": 12458,
											"end": 12475,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 12458,
											"end": 12475,
											"name": "DUP4",
											"source": 20
										},
										{
											"begin": 12458,
											"end": 12475,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12458,
											"end": 12475,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1067"
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1068"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 12583,
											"end": 12591,
											"name": "POP",
											"source": 20
										},
										{
											"begin": 12583,
											"end": 12591,
											"name": "PUSH",
											"source": 20,
											"value": "2386F26FC10000"
										},
										{
											"begin": 12574,
											"end": 12591,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 12574,
											"end": 12591,
											"name": "DUP4",
											"source": 20
										},
										{
											"begin": 12574,
											"end": 12591,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12574,
											"end": 12591,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1069"
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1070"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 12699,
											"end": 12706,
											"name": "POP",
											"source": 20
										},
										{
											"begin": 12699,
											"end": 12706,
											"name": "PUSH",
											"source": 20,
											"value": "5F5E100"
										},
										{
											"begin": 12690,
											"end": 12706,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 12690,
											"end": 12706,
											"name": "DUP4",
											"source": 20
										},
										{
											"begin": 12690,
											"end": 12706,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12690,
											"end": 12706,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1071"
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1072"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 12812,
											"end": 12819,
											"name": "POP",
											"source": 20
										},
										{
											"begin": 12812,
											"end": 12819,
											"name": "PUSH",
											"source": 20,
											"value": "2710"
										},
										{
											"begin": 12803,
											"end": 12819,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 12803,
											"end": 12819,
											"name": "DUP4",
											"source": 20
										},
										{
											"begin": 12803,
											"end": 12819,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12803,
											"end": 12819,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1073"
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1074"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 12916,
											"end": 12932,
											"name": "POP",
											"source": 20
										},
										{
											"begin": 12925,
											"end": 12932,
											"name": "PUSH",
											"source": 20,
											"value": "64"
										},
										{
											"begin": 12916,
											"end": 12932,
											"name": "DUP3",
											"source": 20
										},
										{
											"begin": 12916,
											"end": 12932,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 12916,
											"end": 12932,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1075"
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1076"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 13038,
											"end": 13045,
											"name": "PUSH",
											"source": 20,
											"value": "A"
										},
										{
											"begin": 13029,
											"end": 13045,
											"name": "DUP1",
											"source": 20
										},
										{
											"begin": 13029,
											"end": 13045,
											"name": "SWAP3",
											"source": 20
										},
										{
											"begin": 13029,
											"end": 13045,
											"name": "LT",
											"source": 20
										},
										{
											"begin": 13029,
											"end": 13045,
											"name": "ISZERO",
											"source": 20
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1077"
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "JUMPI",
											"source": 20
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "tag",
											"source": 17,
											"value": "1078"
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 779,
											"end": 780,
											"name": "PUSH",
											"source": 17,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 921,
											"end": 997,
											"name": "PUSH",
											"source": 17,
											"value": "21"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1079"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1079"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1080"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1080"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1081"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1081"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "CALLDATACOPY",
											"source": 23
										},
										{
											"begin": 921,
											"end": 997,
											"name": "DUP7",
											"source": 17
										},
										{
											"begin": 921,
											"end": 997,
											"name": "ADD",
											"source": 17
										},
										{
											"begin": 921,
											"end": 997,
											"name": "ADD",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "SWAP1",
											"source": 17
										},
										{
											"begin": 779,
											"end": 780,
											"name": "tag",
											"source": 17,
											"value": "1082"
										},
										{
											"begin": 779,
											"end": 780,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 779,
											"end": 780,
											"name": "PUSH [tag]",
											"source": 17,
											"value": "1083"
										},
										{
											"begin": 779,
											"end": 780,
											"name": "JUMPI",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "tag",
											"source": 17,
											"value": "1084"
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 1305,
											"end": 1318,
											"name": "POP",
											"source": 17
										},
										{
											"begin": 1305,
											"end": 1318,
											"name": "POP",
											"source": 17
										},
										{
											"begin": 1305,
											"end": 1318,
											"name": "POP",
											"source": 17
										},
										{
											"begin": 1305,
											"end": 1318,
											"name": "POP",
											"source": 17
										},
										{
											"begin": 637,
											"end": 1335,
											"name": "SWAP1",
											"source": 17
										},
										{
											"begin": 637,
											"end": 1335,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "tag",
											"source": 17,
											"value": "1083"
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "181899199A1A9B1B9C1CB0B131B232B3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "81"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1115,
											"end": 1210,
											"name": "DUP3",
											"source": 17
										},
										{
											"begin": 1115,
											"end": 1210,
											"name": "DUP3",
											"source": 17
										},
										{
											"begin": 1115,
											"end": 1210,
											"name": "MOD",
											"source": 17
										},
										{
											"begin": 1115,
											"end": 1210,
											"name": "BYTE",
											"source": 17
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 1115,
											"end": 1210,
											"name": "MSTORE8",
											"source": 17
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 1227,
											"end": 1238,
											"name": "SWAP2",
											"source": 17
										},
										{
											"begin": 1227,
											"end": 1238,
											"name": "DUP3",
											"source": 17
										},
										{
											"begin": 1260,
											"end": 1270,
											"name": "ISZERO",
											"source": 17
										},
										{
											"begin": 1256,
											"end": 1277,
											"name": "PUSH [tag]",
											"source": 17,
											"value": "1085"
										},
										{
											"begin": 1256,
											"end": 1277,
											"name": "JUMPI",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "SWAP2",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "SWAP1",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "DUP3",
											"source": 17
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "PUSH [tag]",
											"source": 17,
											"value": "1082"
										},
										{
											"begin": 1010,
											"end": 1292,
											"name": "JUMP",
											"source": 17
										},
										{
											"begin": 1256,
											"end": 1277,
											"name": "tag",
											"source": 17,
											"value": "1085"
										},
										{
											"begin": 1256,
											"end": 1277,
											"name": "JUMPDEST",
											"source": 17
										},
										{
											"begin": 1272,
											"end": 1277,
											"name": "PUSH [tag]",
											"source": 17,
											"value": "1084"
										},
										{
											"begin": 1272,
											"end": 1277,
											"name": "JUMP",
											"source": 17
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "tag",
											"source": 20,
											"value": "1077"
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 13075,
											"end": 13076,
											"name": "PUSH",
											"source": 20,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1078"
										},
										{
											"begin": 13025,
											"end": 13091,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "tag",
											"source": 20,
											"value": "1075"
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 12925,
											"end": 12932,
											"name": "PUSH",
											"source": 20,
											"value": "64"
										},
										{
											"begin": 12996,
											"end": 12997,
											"name": "PUSH",
											"source": 20,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1076"
										},
										{
											"begin": 12912,
											"end": 13012,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "tag",
											"source": 20,
											"value": "1073"
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 12883,
											"end": 12884,
											"name": "PUSH",
											"source": 20,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1074"
										},
										{
											"begin": 12799,
											"end": 12899,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "tag",
											"source": 20,
											"value": "1071"
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 12770,
											"end": 12771,
											"name": "PUSH",
											"source": 20,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1072"
										},
										{
											"begin": 12686,
											"end": 12786,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "tag",
											"source": 20,
											"value": "1069"
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 12656,
											"end": 12658,
											"name": "PUSH",
											"source": 20,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1070"
										},
										{
											"begin": 12570,
											"end": 12673,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "tag",
											"source": 20,
											"value": "1067"
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 12540,
											"end": 12542,
											"name": "PUSH",
											"source": 20,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "SWAP2",
											"source": 20
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1068"
										},
										{
											"begin": 12454,
											"end": 12557,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "tag",
											"source": 20,
											"value": "1065"
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "JUMPDEST",
											"source": 20
										},
										{
											"begin": 12424,
											"end": 12426,
											"name": "PUSH",
											"source": 20,
											"value": "40"
										},
										{
											"begin": 12424,
											"end": 12426,
											"name": "SWAP4",
											"source": 20
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "PUSH",
											"source": 20,
											"value": "0"
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "PUSH [tag]",
											"source": 20,
											"value": "1066"
										},
										{
											"begin": 12338,
											"end": 12441,
											"name": "JUMP",
											"source": 20
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "tag",
											"source": 23,
											"value": "47"
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7843,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "C1665499"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1089"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "tag",
											"source": 23,
											"value": "1090"
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "22B76FCF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1093"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "tag",
											"source": 23,
											"value": "1094"
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7936,
											"end": 7961,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 7936,
											"end": 7961,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 7936,
											"end": 7961,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7936,
											"end": 7961,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 7983,
											"end": 8005,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7983,
											"end": 8005,
											"name": "PUSH",
											"source": 23,
											"value": "160"
										},
										{
											"begin": 7983,
											"end": 8005,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7983,
											"end": 8005,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 7979,
											"end": 8197,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1095"
										},
										{
											"begin": 7979,
											"end": 8197,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 8206,
											"end": 8227,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7979,
											"end": 8197,
											"name": "tag",
											"source": 23,
											"value": "1095"
										},
										{
											"begin": 7979,
											"end": 8197,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 8024,
											"end": 8053,
											"name": "PUSH",
											"source": 23,
											"value": "1A0"
										},
										{
											"begin": 8024,
											"end": 8053,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 8024,
											"end": 8053,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 8056,
											"end": 8071,
											"name": "TIMESTAMP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "LT",
											"source": -1
										},
										{
											"begin": 8020,
											"end": 8187,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1097"
										},
										{
											"begin": 8020,
											"end": 8187,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 8206,
											"end": 8227,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 8020,
											"end": 8187,
											"name": "tag",
											"source": 23,
											"value": "1097"
										},
										{
											"begin": 8020,
											"end": 8187,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 8145,
											"end": 8172,
											"name": "PUSH",
											"source": 23,
											"value": "180"
										},
										{
											"begin": 8145,
											"end": 8172,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 8145,
											"end": 8172,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 8145,
											"end": 8172,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "tag",
											"source": 23,
											"value": "1093"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1099"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "482"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 7810,
											"end": 7901,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "tag",
											"source": 23,
											"value": "1099"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1094"
										},
										{
											"begin": 7810,
											"end": 7901,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "tag",
											"source": 23,
											"value": "1089"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1101"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "tag",
											"source": 23,
											"value": "1102"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1103"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 7830,
											"end": 7867,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "tag",
											"source": 23,
											"value": "1103"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1106"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1106"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1090"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "tag",
											"source": 23,
											"value": "1101"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1102"
										},
										{
											"begin": 7830,
											"end": 7867,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "tag",
											"source": 23,
											"value": "48"
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 15622,
											"end": 15654,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1107"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15843,
											"end": 15850,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1109"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1109"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15953,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C1665499"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1112"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "tag",
											"source": 23,
											"value": "1113"
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "22B76FCF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E2"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP1",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1116"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "tag",
											"source": 23,
											"value": "1117"
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16030,
											"end": 16049,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 16064,
											"end": 16086,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 16064,
											"end": 16086,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16064,
											"end": 16086,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1118"
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "tag",
											"source": 23,
											"value": "1119"
										},
										{
											"begin": 15455,
											"end": 17222,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 16340,
											"end": 16357,
											"name": "PUSH",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16334,
											"end": 16377,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1121"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 16340,
											"end": 16357,
											"name": "PUSH",
											"source": 23,
											"value": "15"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16330,
											"end": 17207,
											"name": "tag",
											"source": 23,
											"value": "1121"
										},
										{
											"begin": 16330,
											"end": 17207,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "PUSH",
											"source": 23,
											"value": "1C0"
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16750,
											"end": 16773,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 16750,
											"end": 16773,
											"name": "PUSH",
											"source": 23,
											"value": "260"
										},
										{
											"begin": 16750,
											"end": 16773,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 16750,
											"end": 16773,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 16750,
											"end": 16773,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5FC0CE1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1126"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 16330,
											"end": 17207,
											"name": "tag",
											"source": 23,
											"value": "1127"
										},
										{
											"begin": 16330,
											"end": 17207,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16833,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16833,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16859,
											"end": 16889,
											"name": "PUSH",
											"source": 23,
											"value": "2A0"
										},
										{
											"begin": 16859,
											"end": 16889,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16859,
											"end": 16889,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 16859,
											"end": 16889,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16915,
											"end": 16938,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16915,
											"end": 16938,
											"name": "PUSH",
											"source": 23,
											"value": "200"
										},
										{
											"begin": 16915,
											"end": 16938,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 16915,
											"end": 16938,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 16964,
											"end": 16991,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 16964,
											"end": 16991,
											"name": "PUSH",
											"source": 23,
											"value": "220"
										},
										{
											"begin": 16964,
											"end": 16991,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 16964,
											"end": 16991,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 17017,
											"end": 17039,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 17017,
											"end": 17039,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1128"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1128"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17125,
											"name": "PUSH",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3605E0D"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 17141,
											"end": 17145,
											"name": "ADDRESS",
											"source": 23
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1129"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1129"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "63"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1130"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1130"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1131"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1131"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1132"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1132"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "60"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1133"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1133"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1134"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1134"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1135"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1135"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1136"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1136"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1137"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1137"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1138"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1138"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "120"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1139"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1139"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1140"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "160"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1141"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1141"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "180"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1142"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1142"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1143"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1143"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "PUSH",
											"source": 23,
											"value": "1C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16666,
											"end": 16690,
											"name": "PUSH",
											"source": 23,
											"value": "1C0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1144"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1144"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "104"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "124"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 16612,
											"end": 17080,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "144"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "876"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1147"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 17099,
											"end": 17172,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17099,
											"end": 17172,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17099,
											"end": 17172,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "tag",
											"source": 23,
											"value": "1147"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1149"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 17106,
											"end": 17172,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "tag",
											"source": 23,
											"value": "1149"
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 17106,
											"end": 17172,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "831"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "38"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "tag",
											"source": 23,
											"value": "1126"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1155"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1046"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 16799,
											"end": 16823,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "tag",
											"source": 23,
											"value": "1155"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1127"
										},
										{
											"begin": 16799,
											"end": 16823,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "tag",
											"source": 23,
											"value": "1118"
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 16139,
											"end": 16168,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16139,
											"end": 16168,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 16139,
											"end": 16168,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 16139,
											"end": 16168,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16171,
											"end": 16186,
											"name": "TIMESTAMP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "GT",
											"source": -1
										},
										{
											"begin": 16135,
											"end": 16306,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 16171,
											"end": 16186,
											"name": "EQ",
											"source": 23
										},
										{
											"begin": 16171,
											"end": 16186,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1157"
										},
										{
											"begin": 16171,
											"end": 16186,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 16135,
											"end": 16306,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1119"
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 16135,
											"end": 16306,
											"name": "tag",
											"source": 23,
											"value": "1157"
										},
										{
											"begin": 16135,
											"end": 16306,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 16135,
											"end": 16306,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1119"
										},
										{
											"begin": 16059,
											"end": 16316,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "tag",
											"source": 23,
											"value": "1116"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1160"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "482"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 15920,
											"end": 16020,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "tag",
											"source": 23,
											"value": "1160"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1117"
										},
										{
											"begin": 15920,
											"end": 16020,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "tag",
											"source": 23,
											"value": "1112"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1162"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "tag",
											"source": 23,
											"value": "1163"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1164"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 15940,
											"end": 15977,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "tag",
											"source": 23,
											"value": "1164"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1167"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1167"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1113"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "tag",
											"source": 23,
											"value": "1162"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1163"
										},
										{
											"begin": 15940,
											"end": 15977,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1107"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 5803,
											"end": 5810,
											"name": "PUSH",
											"source": 9,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "2F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4552433732314D657461646174613A2055524920717565727920666F72206E6F"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3732BC34B9BA32B73A103A37B5B2B7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "89"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "84"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "49"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "804"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "50"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "LT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "798"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "51"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18292,
											"end": 18299,
											"name": "PUSH",
											"source": 23,
											"value": "14"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 18386,
											"end": 18406,
											"name": "PUSH",
											"source": 23,
											"value": "16"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18541,
											"name": "PUSH",
											"source": 23,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP9",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C1665499"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP12",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1172"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1174"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "1175"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "22B76FCF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "GAS",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "STATICCALL",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1176"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1178"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "1179"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "20"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH data",
											"source": -1,
											"value": "CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP4",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "CODECOPY",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "DUP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MLOAD",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "MSTORE",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 2954,
											"end": 2960,
											"name": "PUSH",
											"source": 1,
											"value": "9"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1180"
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "1181"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 4241,
											"end": 4257,
											"name": "SWAP7",
											"source": 9
										},
										{
											"begin": 4241,
											"end": 4257,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 4241,
											"end": 4257,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 4237,
											"end": 4324,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1182"
										},
										{
											"begin": 4237,
											"end": 4324,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP11",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 9039,
											"end": 9057,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 9039,
											"end": 9057,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1184"
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "1185"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "POP",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP9",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "PUSH",
											"source": 9,
											"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "SWAP13",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "SWAP14",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP11",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP10",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "SWAP6",
											"source": 9
										},
										{
											"begin": 9165,
											"end": 9183,
											"name": "DUP5",
											"source": 9
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1186"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "tag",
											"source": 23,
											"value": "1187"
										},
										{
											"begin": 18134,
											"end": 18885,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 9491,
											"end": 9500,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "60"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "A0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP15",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP16",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 9581,
											"end": 9608,
											"name": "LOG4",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 4614,
											"end": 4635,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 4614,
											"end": 4635,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 4614,
											"end": 4635,
											"name": "DUP5",
											"source": 9
										},
										{
											"begin": 4614,
											"end": 4635,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 4610,
											"end": 4719,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1188"
										},
										{
											"begin": 4610,
											"end": 4719,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "PUSH",
											"source": 23,
											"value": "2"
										},
										{
											"begin": 18840,
											"end": 18855,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 18134,
											"end": 18885,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 4610,
											"end": 4719,
											"name": "tag",
											"source": 9,
											"value": "1188"
										},
										{
											"begin": 4610,
											"end": 4719,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "64283D7B"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "SWAP4",
											"source": 9
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "DUP5",
											"source": 9
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 4658,
											"end": 4708,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "tag",
											"source": 9,
											"value": "1186"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 15350,
											"end": 15365,
											"name": "PUSH",
											"source": 9,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 9372,
											"end": 9381,
											"name": "PUSH",
											"source": 9,
											"value": "5"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP10",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SSTORE",
											"source": 23
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1187"
										},
										{
											"begin": 9161,
											"end": 9417,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "tag",
											"source": 9,
											"value": "1184"
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1191"
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "tag",
											"source": 9,
											"value": "1192"
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 7197,
											"end": 7236,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 7193,
											"end": 7448,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1193"
										},
										{
											"begin": 7193,
											"end": 7448,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "PUSH",
											"source": 9,
											"value": "0"
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1185"
										},
										{
											"begin": 9035,
											"end": 9121,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 7193,
											"end": 7448,
											"name": "tag",
											"source": 9,
											"value": "1193"
										},
										{
											"begin": 7193,
											"end": 7448,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 7256,
											"end": 7275,
											"name": "DUP5",
											"source": 9
										},
										{
											"begin": 7256,
											"end": 7275,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 7256,
											"end": 7275,
											"name": "DUP6",
											"source": 9
										},
										{
											"begin": 7256,
											"end": 7275,
											"name": "DUP9",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1195"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "PUSH",
											"source": 9,
											"value": "7E273289"
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "PUSH",
											"source": 9,
											"value": "E0"
										},
										{
											"begin": 16313,
											"end": 16344,
											"name": "SHL",
											"source": 9
										},
										{
											"begin": 7302,
											"end": 7333,
											"name": "DUP4",
											"source": 9
										},
										{
											"begin": 7302,
											"end": 7333,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 7302,
											"end": 7333,
											"name": "DUP3",
											"source": 9
										},
										{
											"begin": 7302,
											"end": 7333,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 7302,
											"end": 7333,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 7252,
											"end": 7438,
											"name": "tag",
											"source": 9,
											"value": "1195"
										},
										{
											"begin": 7252,
											"end": 7438,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "177E802F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "SWAP2",
											"source": 9
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "SUB",
											"source": 9
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "SWAP1",
											"source": 9
										},
										{
											"begin": 7379,
											"end": 7423,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "tag",
											"source": 9,
											"value": "1191"
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 6556,
											"end": 6572,
											"name": "DUP7",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6572,
											"name": "EQ",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "ISZERO",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1198"
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "tag",
											"source": 9,
											"value": "1199"
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6644,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1192"
										},
										{
											"begin": 6556,
											"end": 6644,
											"name": "JUMPI",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 6038,
											"end": 6053,
											"name": "PUSH",
											"source": 9,
											"value": "6"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 6612,
											"end": 6644,
											"name": "EQ",
											"source": 9
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1192"
										},
										{
											"begin": 6518,
											"end": 6645,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "tag",
											"source": 9,
											"value": "1198"
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 4043,
											"end": 4061,
											"name": "PUSH",
											"source": 9,
											"value": "7"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 18633,
											"end": 18643,
											"name": "CALLER",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP13",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "KECCAK256",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "PUSH [tag]",
											"source": 9,
											"value": "1199"
										},
										{
											"begin": 6556,
											"end": 6608,
											"name": "JUMP",
											"source": 9
										},
										{
											"begin": 4237,
											"end": 4324,
											"name": "tag",
											"source": 9,
											"value": "1182"
										},
										{
											"begin": 4237,
											"end": 4324,
											"name": "JUMPDEST",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "32505749"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "DUP2",
											"source": 9
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "MSTORE",
											"source": 9
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "DUP1",
											"source": 9
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "DUP8",
											"source": 9
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "ADD",
											"source": 9
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP12",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 4280,
											"end": 4313,
											"name": "REVERT",
											"source": 9
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "tag",
											"source": 23,
											"value": "1180"
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18673,
											"end": 18695,
											"name": "PUSH",
											"source": 23,
											"value": "100"
										},
										{
											"begin": 18673,
											"end": 18695,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18673,
											"end": 18695,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 18673,
											"end": 18695,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18673,
											"end": 18695,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1202"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1181"
										},
										{
											"begin": 18609,
											"end": 18722,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1202"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6E6F742073656C6C61626C65"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "44"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "64"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "tag",
											"source": 23,
											"value": "1178"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1204"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP15",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "482"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 18508,
											"end": 18599,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "tag",
											"source": 23,
											"value": "1204"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH",
											"source": 23,
											"value": "0"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1179"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "tag",
											"source": 23,
											"value": "1176"
										},
										{
											"begin": 18508,
											"end": 18599,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP14",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "tag",
											"source": 23,
											"value": "1174"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP8",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "GT",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1206"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "tag",
											"source": 23,
											"value": "1207"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1208"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "13"
										},
										{
											"begin": 18528,
											"end": 18565,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "tag",
											"source": 23,
											"value": "1208"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SLT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "208"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1211"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "35"
										},
										{
											"begin": 880,
											"end": 21379,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1211"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1175"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "tag",
											"source": 23,
											"value": "1206"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1207"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "tag",
											"source": 23,
											"value": "1172"
										},
										{
											"begin": 18528,
											"end": 18565,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MLOAD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATACOPY",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "RETURNDATASIZE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 3081,
											"end": 3528,
											"name": "tag",
											"source": 22,
											"value": "52"
										},
										{
											"begin": 3081,
											"end": 3528,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 3171,
											"end": 3177,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 3171,
											"end": 3177,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1212"
										},
										{
											"begin": 3171,
											"end": 3177,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 3179,
											"end": 3197,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 3176,
											"end": 3177,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 3179,
											"end": 3197,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 3179,
											"end": 3197,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 3167,
											"end": 3518,
											"name": "tag",
											"source": 22,
											"value": "1212"
										},
										{
											"begin": 3167,
											"end": 3518,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 3220,
											"end": 3238,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 3263,
											"end": 3290,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1214"
										},
										{
											"begin": 3263,
											"end": 3290,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 3263,
											"end": 3290,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 3263,
											"end": 3290,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 3263,
											"end": 3290,
											"name": "tag",
											"source": 22,
											"value": "1214"
										},
										{
											"begin": 3263,
											"end": 3290,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 3304,
											"end": 3313,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 3304,
											"end": 3313,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 3304,
											"end": 3313,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1215"
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "tag",
											"source": 22,
											"value": "1217"
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 3405,
											"end": 3444,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 3447,
											"end": 3452,
											"name": "PUSH",
											"source": 22,
											"value": "3FFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "OR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 3476,
											"end": 3509,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "tag",
											"source": 22,
											"value": "1215"
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 3310,
											"end": 3313,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 3354,
											"end": 3363,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 3354,
											"end": 3363,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1218"
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "tag",
											"source": 22,
											"value": "1219"
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1217"
										},
										{
											"begin": 3300,
											"end": 3385,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "tag",
											"source": 22,
											"value": "1218"
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1219"
										},
										{
											"begin": 3350,
											"end": 3385,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 3925,
											"end": 4508,
											"name": "tag",
											"source": 22,
											"value": "53"
										},
										{
											"begin": 3925,
											"end": 4508,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4049,
											"end": 4055,
											"name": "PUSH",
											"source": 22,
											"value": "7FFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 4028,
											"end": 4055,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 4068,
											"end": 4084,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 4079,
											"end": 4084,
											"name": "PUSH",
											"source": 22,
											"value": "3FFF"
										},
										{
											"begin": 4068,
											"end": 4084,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 4068,
											"end": 4084,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 4064,
											"end": 4094,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1220"
										},
										{
											"begin": 4064,
											"end": 4094,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "7F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4125,
											"end": 4173,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 4125,
											"end": 4173,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ISZERO",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 4216,
											"end": 4221,
											"name": "PUSH",
											"source": 22,
											"value": "40FE"
										},
										{
											"begin": 4204,
											"end": 4221,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 4204,
											"end": 4221,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 4259,
											"end": 4313,
											"name": "AND",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4259,
											"end": 4355,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 4259,
											"end": 4355,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 4379,
											"end": 4384,
											"name": "PUSH",
											"source": 22,
											"value": "406F"
										},
										{
											"begin": 4368,
											"end": 4384,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 4368,
											"end": 4384,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 4368,
											"end": 4384,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 4379,
											"end": 4384,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 4379,
											"end": 4384,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1226"
										},
										{
											"begin": 4379,
											"end": 4384,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 3925,
											"end": 4508,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 3925,
											"end": 4508,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 4364,
											"end": 4475,
											"name": "tag",
											"source": 22,
											"value": "1226"
										},
										{
											"begin": 4364,
											"end": 4475,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4430,
											"end": 4446,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 4430,
											"end": 4446,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 4426,
											"end": 4475,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1229"
										},
										{
											"begin": 4426,
											"end": 4475,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 4364,
											"end": 4475,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 3925,
											"end": 4508,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 3925,
											"end": 4508,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 4426,
											"end": 4475,
											"name": "tag",
											"source": 22,
											"value": "1229"
										},
										{
											"begin": 4426,
											"end": 4475,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "406E"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 7673,
											"end": 8234,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 23
										},
										{
											"begin": 4064,
											"end": 4094,
											"name": "tag",
											"source": 22,
											"value": "1220"
										},
										{
											"begin": 4064,
											"end": 4094,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4086,
											"end": 4094,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 4086,
											"end": 4094,
											"name": "POP",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 4086,
											"end": 4094,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 4086,
											"end": 4094,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21496,
											"end": 23981,
											"name": "tag",
											"source": 22,
											"value": "54"
										},
										{
											"begin": 21496,
											"end": 23981,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "PUSH",
											"source": 22,
											"value": "7FFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 21608,
											"end": 21635,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 21663,
											"end": 21690,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 21703,
											"end": 21722,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 21703,
											"end": 21722,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 21703,
											"end": 21722,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 21703,
											"end": 21722,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 21699,
											"end": 23971,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1231"
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 21738,
											"end": 21757,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1233"
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 21775,
											"end": 21781,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1235"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 21794,
											"end": 21832,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 21794,
											"end": 21832,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 21794,
											"end": 21832,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 21790,
											"end": 21832,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 21790,
											"end": 21832,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 21783,
											"end": 21832,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21771,
											"end": 21937,
											"name": "tag",
											"source": 22,
											"value": "1235"
										},
										{
											"begin": 21771,
											"end": 21937,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 21853,
											"end": 21858,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 21853,
											"end": 21858,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 21853,
											"end": 21858,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 21853,
											"end": 21896,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1237"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 21905,
											"end": 21910,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 21898,
											"end": 21910,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 21898,
											"end": 21910,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21849,
											"end": 21937,
											"name": "tag",
											"source": 22,
											"value": "1237"
										},
										{
											"begin": 21849,
											"end": 21937,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 21927,
											"end": 21937,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 21927,
											"end": 21937,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21734,
											"end": 22102,
											"name": "tag",
											"source": 22,
											"value": "1233"
										},
										{
											"begin": 21734,
											"end": 22102,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 21970,
											"end": 22008,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 21970,
											"end": 22008,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1239"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 22015,
											"end": 22025,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 22015,
											"end": 22025,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21966,
											"end": 22091,
											"name": "tag",
											"source": 22,
											"value": "1239"
										},
										{
											"begin": 21966,
											"end": 22091,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 22053,
											"end": 22091,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 22049,
											"end": 22091,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 22049,
											"end": 22091,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22042,
											"end": 22091,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 21699,
											"end": 23971,
											"name": "tag",
											"source": 22,
											"value": "1231"
										},
										{
											"begin": 21699,
											"end": 23971,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "SWAP6",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "SWAP6",
											"source": 22
										},
										{
											"begin": 22120,
											"end": 22139,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 22116,
											"end": 23971,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1241"
										},
										{
											"begin": 21629,
											"end": 21635,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 22157,
											"end": 22195,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 22157,
											"end": 22195,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1239"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 22202,
											"end": 22212,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 22202,
											"end": 22212,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22116,
											"end": 23971,
											"name": "tag",
											"source": 22,
											"value": "1241"
										},
										{
											"begin": 22116,
											"end": 23971,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 22324,
											"end": 22368,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1245"
										},
										{
											"begin": 22382,
											"end": 22396,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 22398,
											"end": 22411,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 22410,
											"end": 22411,
											"name": "PUSH",
											"source": 22,
											"value": "1"
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "tag",
											"source": 22,
											"value": "1247"
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 22503,
											"end": 22547,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1248"
										},
										{
											"begin": 22561,
											"end": 22575,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 22577,
											"end": 22590,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 22589,
											"end": 22590,
											"name": "PUSH",
											"source": 22,
											"value": "1"
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "tag",
											"source": 22,
											"value": "1250"
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MUL",
											"source": 23
										},
										{
											"begin": 22661,
											"end": 22685,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 22661,
											"end": 22685,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 22699,
											"end": 22714,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 22699,
											"end": 22714,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 22699,
											"end": 22714,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 22695,
											"end": 22827,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1251"
										},
										{
											"begin": 22695,
											"end": 22827,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 22895,
											"end": 22968,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 22968,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1253"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 22909,
											"end": 22968,
											"name": "PUSH",
											"source": 22,
											"value": "E1"
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "tag",
											"source": 22,
											"value": "1255"
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "PUSH",
											"source": 22,
											"value": "4070"
										},
										{
											"begin": 23125,
											"end": 23148,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 23125,
											"end": 23148,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 23125,
											"end": 23148,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 23125,
											"end": 23148,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1256"
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23175,
											"end": 23188,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 23200,
											"end": 23214,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23200,
											"end": 23214,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "tag",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "PUSH",
											"source": 22,
											"value": "7F"
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "SHL",
											"source": 22
										},
										{
											"begin": 23872,
											"end": 23877,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23872,
											"end": 23877,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 23862,
											"end": 23947,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 23862,
											"end": 23960,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 23837,
											"end": 23962,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 23837,
											"end": 23962,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "tag",
											"source": 22,
											"value": "1256"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23253,
											"end": 23258,
											"name": "PUSH",
											"source": 22,
											"value": "40E0"
										},
										{
											"begin": 23235,
											"end": 23258,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 23235,
											"end": 23258,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 23253,
											"end": 23258,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 23253,
											"end": 23258,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1259"
										},
										{
											"begin": 23253,
											"end": 23258,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 23289,
											"end": 23306,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1261"
										},
										{
											"begin": 23143,
											"end": 23148,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "tag",
											"source": 22,
											"value": "1263"
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 23231,
											"end": 23827,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "tag",
											"source": 22,
											"value": "1261"
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23373,
											"end": 23390,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 23373,
											"end": 23390,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1265"
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "tag",
											"source": 22,
											"value": "1266"
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1263"
										},
										{
											"begin": 23285,
											"end": 23436,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "tag",
											"source": 22,
											"value": "1265"
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "406F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1266"
										},
										{
											"begin": 23369,
											"end": 23436,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23231,
											"end": 23827,
											"name": "tag",
											"source": 22,
											"value": "1259"
										},
										{
											"begin": 23231,
											"end": 23827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23500,
											"end": 23505,
											"name": "PUSH",
											"source": 22,
											"value": "C0DD"
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP9",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP8",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP9",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 23482,
											"end": 23505,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 23478,
											"end": 23827,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 23500,
											"end": 23505,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 23500,
											"end": 23505,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1267"
										},
										{
											"begin": 23500,
											"end": 23505,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 23519,
											"end": 23537,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23519,
											"end": 23537,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23519,
											"end": 23537,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23519,
											"end": 23537,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23519,
											"end": 23537,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23549,
											"end": 23563,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 23478,
											"end": 23827,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23478,
											"end": 23827,
											"name": "tag",
											"source": 22,
											"value": "1267"
										},
										{
											"begin": 23478,
											"end": 23827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP6",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 23596,
											"end": 23605,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1270"
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "tag",
											"source": 22,
											"value": "1272"
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23724,
											"end": 23768,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40DE"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 23478,
											"end": 23827,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "tag",
											"source": 22,
											"value": "1270"
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23664,
											"end": 23673,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 23664,
											"end": 23673,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 23664,
											"end": 23673,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1273"
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "tag",
											"source": 22,
											"value": "1274"
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1272"
										},
										{
											"begin": 23592,
											"end": 23711,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "tag",
											"source": 22,
											"value": "1273"
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 21623,
											"end": 21626,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1274"
										},
										{
											"begin": 23660,
											"end": 23711,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "tag",
											"source": 22,
											"value": "1253"
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 22987,
											"end": 23060,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 22987,
											"end": 23060,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1275"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 23001,
											"end": 23060,
											"name": "PUSH",
											"source": 22,
											"value": "E0"
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "tag",
											"source": 22,
											"value": "1277"
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1255"
										},
										{
											"begin": 22895,
											"end": 23110,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "tag",
											"source": 22,
											"value": "1275"
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 23079,
											"end": 23110,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1278"
										},
										{
											"begin": 23079,
											"end": 23110,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 23079,
											"end": 23110,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 23079,
											"end": 23110,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 23079,
											"end": 23110,
											"name": "tag",
											"source": 22,
											"value": "1278"
										},
										{
											"begin": 23079,
											"end": 23110,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1277"
										},
										{
											"begin": 22987,
											"end": 23110,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22695,
											"end": 22827,
											"name": "tag",
											"source": 22,
											"value": "1251"
										},
										{
											"begin": 22695,
											"end": 22827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP7",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP7",
											"source": -1
										},
										{
											"begin": 22734,
											"end": 22739,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22777,
											"name": "DUP8",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22777,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22781,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22781,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1279"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 22733,
											"end": 22827,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 22726,
											"end": 22827,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22726,
											"end": 22827,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22827,
											"name": "tag",
											"source": 22,
											"value": "1279"
										},
										{
											"begin": 22733,
											"end": 22827,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22827,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22733,
											"end": 22827,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 22726,
											"end": 22827,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22726,
											"end": 22827,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "tag",
											"source": 22,
											"value": "1248"
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4324,
											"end": 4355,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 22605,
											"end": 22650,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22605,
											"end": 22650,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 22605,
											"end": 22650,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 22605,
											"end": 22650,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1250"
										},
										{
											"begin": 22557,
											"end": 22650,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "tag",
											"source": 22,
											"value": "1245"
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4324,
											"end": 4355,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 22426,
											"end": 22471,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 22426,
											"end": 22471,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 22426,
											"end": 22471,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 22426,
											"end": 22471,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1247"
										},
										{
											"begin": 22378,
											"end": 22471,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25238,
											"end": 28032,
											"name": "tag",
											"source": 22,
											"value": "55"
										},
										{
											"begin": 25238,
											"end": 28032,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH",
											"source": 22,
											"value": "7FFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4005"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 25350,
											"end": 25377,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 25350,
											"end": 25377,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1282"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25480,
											"end": 25499,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "831"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 25501,
											"end": 25511,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25441,
											"end": 28022,
											"name": "tag",
											"source": 22,
											"value": "1282"
										},
										{
											"begin": 25441,
											"end": 28022,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 26210,
											"end": 26254,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1286"
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 26300,
											"end": 26315,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1288"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "tag",
											"source": 22,
											"value": "1289"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "19"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6C"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DIV",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 26668,
											"end": 26683,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 26668,
											"end": 26683,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1291"
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6C"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26815,
											"end": 26859,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 26815,
											"end": 26859,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1293"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "73"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26895,
											"end": 26940,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 26940,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1295"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1297"
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 26943,
											"end": 26974,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "tag",
											"source": 22,
											"value": "1297"
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1298"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "PUSH",
											"source": 22,
											"value": "4071"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27123,
											"end": 27158,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27123,
											"end": 27158,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1299"
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27184,
											"end": 27202,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27214,
											"end": 27228,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1301"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "PUSH",
											"source": 22,
											"value": "7F"
										},
										{
											"begin": 4139,
											"end": 4173,
											"name": "SHL",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "40059"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "EC"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 27923,
											"end": 27928,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 27913,
											"end": 27998,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 27913,
											"end": 28011,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 27888,
											"end": 28013,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27888,
											"end": 28013,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1299"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP6",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "PUSH",
											"source": 22,
											"value": "3FFC"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1302"
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 27337,
											"end": 27351,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27337,
											"end": 27351,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1301"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1302"
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 27390,
											"end": 27395,
											"name": "PUSH",
											"source": 22,
											"value": "3F8C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1305"
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1307"
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1309"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1301"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1307"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1311"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1312"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1309"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1311"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3FFB"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1312"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1305"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27850,
											"end": 27855,
											"name": "PUSH",
											"source": 22,
											"value": "3F8D"
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1313"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1314"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27763,
											"end": 27807,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27763,
											"end": 27807,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1301"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "tag",
											"source": 22,
											"value": "1313"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1314"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1295"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "72"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26987,
											"end": 27032,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26987,
											"end": 27032,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1315"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 27001,
											"end": 27032,
											"name": "PUSH",
											"source": 22,
											"value": "72"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1317"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1298"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1315"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 27051,
											"end": 27096,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 27051,
											"end": 27096,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1318"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 27065,
											"end": 27096,
											"name": "PUSH",
											"source": 22,
											"value": "71"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1317"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27051,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1318"
										},
										{
											"begin": 27051,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1317"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "tag",
											"source": 23,
											"value": "1293"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPDEST",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4E487B71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "E0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "MSTORE",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "24"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "REVERT",
											"source": 23
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "tag",
											"source": 22,
											"value": "1291"
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP5",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40059"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EC"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26703,
											"end": 26708,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26746,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26746,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26750,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26750,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1279"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26702,
											"end": 26796,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26695,
											"end": 26796,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26695,
											"end": 26796,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "tag",
											"source": 22,
											"value": "1288"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1324"
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 26350,
											"end": 26381,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "tag",
											"source": 22,
											"value": "1324"
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26344,
											"end": 26347,
											"name": "PUSH",
											"source": 22,
											"value": "E2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "3F93"
										},
										{
											"begin": 26443,
											"end": 26444,
											"name": "PUSH",
											"source": 22,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1289"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "tag",
											"source": 22,
											"value": "1286"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26545,
											"end": 26589,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 26594,
											"end": 26597,
											"name": "PUSH",
											"source": 22,
											"value": "72"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1289"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25238,
											"end": 28032,
											"name": "tag",
											"source": 22,
											"value": "56"
										},
										{
											"begin": 25238,
											"end": 28032,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 25238,
											"end": 28032,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH",
											"source": 22,
											"value": "7FFF"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 25350,
											"end": 25377,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "F0"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 25405,
											"end": 25432,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 25445,
											"end": 25464,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 25441,
											"end": 28022,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1325"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25480,
											"end": 25499,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1239"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 25501,
											"end": 25511,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25501,
											"end": 25511,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25441,
											"end": 28022,
											"name": "tag",
											"source": 22,
											"value": "1325"
										},
										{
											"begin": 25441,
											"end": 28022,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 25594,
											"end": 25613,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 25594,
											"end": 25613,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 25594,
											"end": 25613,
											"name": "SUB",
											"source": 22
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1329"
										},
										{
											"begin": 25371,
											"end": 25377,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 25629,
											"end": 25667,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 25629,
											"end": 25667,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 25629,
											"end": 25672,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 3414,
											"end": 3444,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1331"
										},
										{
											"begin": 3414,
											"end": 3444,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 25674,
											"end": 25684,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25674,
											"end": 25684,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25625,
											"end": 25766,
											"name": "tag",
											"source": 22,
											"value": "1331"
										},
										{
											"begin": 25625,
											"end": 25766,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 25723,
											"end": 25728,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 25722,
											"end": 25766,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 25722,
											"end": 25766,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 25699,
											"end": 25766,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25590,
											"end": 28022,
											"name": "tag",
											"source": 22,
											"value": "1329"
										},
										{
											"begin": 25590,
											"end": 28022,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 25785,
											"end": 25823,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 25785,
											"end": 25823,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 25785,
											"end": 25823,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1333"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25844,
											"end": 25882,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 25844,
											"end": 25882,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1335"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FFFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "EF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 25889,
											"end": 25899,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 25889,
											"end": 25899,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25840,
											"end": 25985,
											"name": "tag",
											"source": 22,
											"value": "1335"
										},
										{
											"begin": 25840,
											"end": 25985,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "7FFF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "F0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 25942,
											"end": 25947,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 25942,
											"end": 25947,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 25941,
											"end": 25985,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 25921,
											"end": 25985,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 25921,
											"end": 25985,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 25914,
											"end": 25985,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 25781,
											"end": 28022,
											"name": "tag",
											"source": 22,
											"value": "1333"
										},
										{
											"begin": 25781,
											"end": 28022,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "POP",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 26045,
											"end": 26075,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 26031,
											"end": 26075,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1337"
										},
										{
											"begin": 26089,
											"end": 26103,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 26105,
											"end": 26118,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26117,
											"end": 26118,
											"name": "PUSH",
											"source": 22,
											"value": "1"
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "tag",
											"source": 22,
											"value": "1339"
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 26210,
											"end": 26254,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1340"
										},
										{
											"begin": 26268,
											"end": 26282,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 26300,
											"end": 26315,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1342"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "tag",
											"source": 22,
											"value": "1343"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1344"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "28"
										},
										{
											"begin": 26631,
											"end": 26654,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "tag",
											"source": 22,
											"value": "1344"
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26668,
											"end": 26683,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26668,
											"end": 26683,
											"name": "DUP4",
											"source": 22
										},
										{
											"begin": 26668,
											"end": 26683,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1346"
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6C"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26815,
											"end": 26859,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 26815,
											"end": 26859,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1293"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "73"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26895,
											"end": 26940,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 26940,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1350"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1352"
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 26943,
											"end": 26974,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "tag",
											"source": 22,
											"value": "1352"
										},
										{
											"begin": 26943,
											"end": 26974,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1353"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "PUSH",
											"source": 22,
											"value": "4071"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27123,
											"end": 27158,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27123,
											"end": 27158,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1354"
										},
										{
											"begin": 27153,
											"end": 27158,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 27923,
											"end": 27928,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27923,
											"end": 27928,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "7F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 27913,
											"end": 27998,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27913,
											"end": 27998,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27913,
											"end": 27998,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27913,
											"end": 27998,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 27888,
											"end": 28013,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1354"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP6",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "PUSH",
											"source": 22,
											"value": "3FFC"
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP8",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 27267,
											"end": 27272,
											"name": "SWAP8",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP7",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1357"
										},
										{
											"begin": 27249,
											"end": 27285,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27312,
											"end": 27325,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 27337,
											"end": 27351,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27337,
											"end": 27351,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1357"
										},
										{
											"begin": 27245,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 27390,
											"end": 27395,
											"name": "PUSH",
											"source": 22,
											"value": "3F8C"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "EQ",
											"source": 22
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1360"
										},
										{
											"begin": 27372,
											"end": 27408,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1362"
										},
										{
											"begin": 27439,
											"end": 27468,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "POP",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 27119,
											"end": 27878,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1362"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "DUP3",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 27547,
											"end": 27576,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1366"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1367"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1263"
										},
										{
											"begin": 27435,
											"end": 27634,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "tag",
											"source": 22,
											"value": "1366"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP1",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3FFB"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1367"
										},
										{
											"begin": 27543,
											"end": 27634,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1360"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27850,
											"end": 27855,
											"name": "PUSH",
											"source": 22,
											"value": "3F8D"
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP5",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP8",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP7",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "SWAP8",
											"source": 22
										},
										{
											"begin": 27703,
											"end": 27712,
											"name": "GT",
											"source": 22
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1368"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "tag",
											"source": 22,
											"value": "1369"
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 27763,
											"end": 27807,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 27763,
											"end": 27807,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 27368,
											"end": 27878,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1258"
										},
										{
											"begin": 23121,
											"end": 23827,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "tag",
											"source": 22,
											"value": "1368"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "6F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1369"
										},
										{
											"begin": 27699,
											"end": 27750,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1350"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "72"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26987,
											"end": 27032,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26987,
											"end": 27032,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1370"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 27001,
											"end": 27032,
											"name": "PUSH",
											"source": 22,
											"value": "72"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1372"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "AND",
											"source": 23
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1353"
										},
										{
											"begin": 26895,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1370"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 27051,
											"end": 27096,
											"name": "DUP5",
											"source": 22
										},
										{
											"begin": 27051,
											"end": 27096,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1373"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 27065,
											"end": 27096,
											"name": "PUSH",
											"source": 22,
											"value": "71"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1372"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 27051,
											"end": 27108,
											"name": "tag",
											"source": 22,
											"value": "1373"
										},
										{
											"begin": 27051,
											"end": 27108,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "FF"
										},
										{
											"begin": 25365,
											"end": 25368,
											"name": "PUSH",
											"source": 22,
											"value": "70"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1372"
										},
										{
											"begin": 26987,
											"end": 27108,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "tag",
											"source": 22,
											"value": "1346"
										},
										{
											"begin": 26664,
											"end": 26796,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "FF"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP6",
											"source": -1
										},
										{
											"begin": 26703,
											"end": 26708,
											"name": "XOR",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26746,
											"name": "DUP7",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26746,
											"name": "AND",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26750,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 26702,
											"end": 26750,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "1279"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 26702,
											"end": 26796,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26695,
											"end": 26796,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26695,
											"end": 26796,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "tag",
											"source": 22,
											"value": "1342"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "SWAP4",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1344"
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1379"
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "DUP6",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 26350,
											"end": 26381,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "tag",
											"source": 22,
											"value": "1379"
										},
										{
											"begin": 26350,
											"end": 26381,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26344,
											"end": 26347,
											"name": "PUSH",
											"source": 22,
											"value": "E2"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SUB",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP5",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 26431,
											"end": 26444,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26443,
											"end": 26444,
											"name": "PUSH",
											"source": 22,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP6",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "71"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "NOT",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "POP",
											"source": 22
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1343"
										},
										{
											"begin": 26296,
											"end": 26495,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "tag",
											"source": 22,
											"value": "1340"
										},
										{
											"begin": 26264,
											"end": 26608,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1344"
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "SWAP2",
											"source": 22
										},
										{
											"begin": 4324,
											"end": 4355,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26545,
											"end": 26589,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 26594,
											"end": 26597,
											"name": "PUSH",
											"source": 22,
											"value": "72"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHL",
											"source": 23
										},
										{
											"begin": 26631,
											"end": 26654,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "28"
										},
										{
											"begin": 26631,
											"end": 26654,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "tag",
											"source": 22,
											"value": "1337"
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 4324,
											"end": 4355,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 26133,
											"end": 26178,
											"name": "OR",
											"source": 22
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1339"
										},
										{
											"begin": 26085,
											"end": 26178,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "57"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52220,
											"end": 52225,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": 52220,
											"end": 52225,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH [tag]",
											"source": 23,
											"value": "259"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "JUMPI",
											"source": 23
										},
										{
											"begin": 52224,
											"end": 52225,
											"name": "PUSH",
											"source": 22,
											"value": "0"
										},
										{
											"begin": 52224,
											"end": 52225,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "80"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 52266,
											"end": 52306,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52266,
											"end": 52306,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52266,
											"end": 52306,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1382"
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1383"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52348,
											"end": 52372,
											"name": "DUP1",
											"source": 22
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 52666,
											"end": 52669,
											"name": "PUSH",
											"source": 22,
											"value": "2"
										},
										{
											"begin": 52348,
											"end": 52372,
											"name": "SWAP3",
											"source": 22
										},
										{
											"begin": 52348,
											"end": 52372,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52348,
											"end": 52372,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1384"
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1385"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52417,
											"end": 52428,
											"name": "PUSH",
											"source": 22,
											"value": "100000000"
										},
										{
											"begin": 52412,
											"end": 52428,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52412,
											"end": 52428,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52412,
											"end": 52428,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1386"
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1387"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52473,
											"end": 52480,
											"name": "PUSH",
											"source": 22,
											"value": "10000"
										},
										{
											"begin": 52468,
											"end": 52480,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52468,
											"end": 52480,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52468,
											"end": 52480,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1388"
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1389"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52525,
											"end": 52530,
											"name": "PUSH",
											"source": 22,
											"value": "100"
										},
										{
											"begin": 52520,
											"end": 52530,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52520,
											"end": 52530,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52520,
											"end": 52530,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1390"
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1391"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52573,
											"end": 52577,
											"name": "PUSH",
											"source": 22,
											"value": "10"
										},
										{
											"begin": 52568,
											"end": 52577,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52568,
											"end": 52577,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52568,
											"end": 52577,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1392"
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1393"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52620,
											"end": 52623,
											"name": "PUSH",
											"source": 22,
											"value": "4"
										},
										{
											"begin": 52615,
											"end": 52623,
											"name": "DUP2",
											"source": 22
										},
										{
											"begin": 52615,
											"end": 52623,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52615,
											"end": 52623,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1394"
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "tag",
											"source": 22,
											"value": "1395"
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52661,
											"end": 52669,
											"name": "LT",
											"source": 22
										},
										{
											"begin": 52661,
											"end": 52669,
											"name": "ISZERO",
											"source": 22
										},
										{
											"begin": 52657,
											"end": 52682,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1396"
										},
										{
											"begin": 52657,
											"end": 52682,
											"name": "JUMPI",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52657,
											"end": 52682,
											"name": "tag",
											"source": 22,
											"value": "1396"
										},
										{
											"begin": 52657,
											"end": 52682,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "1"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 52116,
											"end": 52745,
											"name": "SWAP1",
											"source": 22
										},
										{
											"begin": 52116,
											"end": 52745,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "tag",
											"source": 22,
											"value": "1394"
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1395"
										},
										{
											"begin": 52611,
											"end": 52650,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "tag",
											"source": 22,
											"value": "1392"
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52587,
											"end": 52588,
											"name": "PUSH",
											"source": 22,
											"value": "4"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1393"
										},
										{
											"begin": 52564,
											"end": 52604,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "tag",
											"source": 22,
											"value": "1390"
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52540,
											"end": 52541,
											"name": "PUSH",
											"source": 22,
											"value": "8"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1391"
										},
										{
											"begin": 52516,
											"end": 52557,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "tag",
											"source": 22,
											"value": "1388"
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52490,
											"end": 52492,
											"name": "PUSH",
											"source": 22,
											"value": "10"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1389"
										},
										{
											"begin": 52464,
											"end": 52509,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "tag",
											"source": 22,
											"value": "1386"
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52438,
											"end": 52440,
											"name": "PUSH",
											"source": 22,
											"value": "20"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1387"
										},
										{
											"begin": 52408,
											"end": 52457,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "tag",
											"source": 22,
											"value": "1384"
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 52382,
											"end": 52384,
											"name": "PUSH",
											"source": 22,
											"value": "40"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP4",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "ADD",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP3",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1385"
										},
										{
											"begin": 52344,
											"end": 52401,
											"name": "JUMP",
											"source": 22
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "tag",
											"source": 22,
											"value": "1382"
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "JUMPDEST",
											"source": 22
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "PUSH",
											"source": 23,
											"value": "80"
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SWAP2",
											"source": 23
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "DUP2",
											"source": 23
										},
										{
											"begin": 880,
											"end": 21379,
											"name": "SHR",
											"source": 23
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "PUSH [tag]",
											"source": 22,
											"value": "1383"
										},
										{
											"begin": 52262,
											"end": 52337,
											"name": "JUMP",
											"source": 22
										}
									],
									".data": {
										"CB864C43DD5D441BB6271F424F11BEFA622C032DFD374D226E26FBBDB782B8F8": "a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775"
									}
								},
								"01400FE2F234CF888B5E4C66700C7903F33F31BFC9675E51CB0119F915EB534D": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
								"1AB0C6948A275349AE45A06AAD66A8BD65AC18074615D53676C09B67809099E0": "405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace"
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {
							"ADMIN_ROLE()": "75b238fc",
							"AllowedCrypto(uint256)": "26c91cad",
							"DEFAULT_ADMIN_ROLE()": "a217fddf",
							"addCurrency(address)": "8ab234b6",
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"buyTicket(string,uint256,uint256,bool,uint256)": "7247b789",
							"createReservation(string,uint256,uint256)": "5f0d5b85",
							"eventContract()": "e274fd24",
							"fetchTicketsForOwner(address)": "9af1179e",
							"getApproved(uint256)": "081812fc",
							"getBalance()": "12065fe0",
							"getEventContract()": "715e76aa",
							"getLatestData()": "ab757d61",
							"getLatestDataMaticUsd()": "871a1f2d",
							"getResellPaymentSplitter()": "796c8481",
							"getRoleAdmin(bytes32)": "248a9ca3",
							"getTicketTypesForTicket(uint256)": "24cda745",
							"getTotalTicketsSold()": "4fdf4780",
							"grantRole(bytes32,address)": "2f2ff15d",
							"hasRole(bytes32,address)": "91d14854",
							"isApprovedForAll(address,address)": "e985e9c5",
							"mintTicket(string,address)": "6f269b7a",
							"mintTicketAdmin(address,uint256,uint256)": "6e754d3d",
							"mulDiv(uint256,uint256,uint256)": "aa9a0912",
							"name()": "06fdde03",
							"nbTicketForUserAndTicketTypes(address,uint256)": "d56d2e60",
							"organizerPaymentSplitter()": "dc40da5c",
							"owner()": "8da5cb5b",
							"ownerOf(uint256)": "6352211e",
							"renounceOwnership()": "715018a6",
							"renounceRole(bytes32,address)": "36568abe",
							"resellPaiementSplitter()": "f074ec5a",
							"revokeRole(bytes32,address)": "d547741f",
							"royaltyInfo(uint256,uint256)": "2a55205a",
							"safeTransferFrom(address,address,uint256)": "42842e0e",
							"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
							"setApprovalForAll(address,bool)": "a22cb465",
							"setRoyalty(uint96)": "cac92669",
							"setTicketURI(uint256,string)": "6bb03a87",
							"supportsInterface(bytes4)": "01ffc9a7",
							"symbol()": "95d89b41",
							"ticketReservationContract()": "c6458486",
							"ticketSpecificUri(uint256)": "45a986c9",
							"ticketTypesForTicket(uint256)": "d7ff31e7",
							"tickets(uint256)": "50b44712",
							"tixSellpaymentSplitter()": "b4c24af7",
							"tokenURI(uint256)": "c87b56dd",
							"transferFrom(address,address,uint256)": "23b872dd",
							"transferOwnership(address)": "f2fde38b",
							"withdraw()": "3ccfd60b"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_tixSellpaymentSplitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organizerEventPaymentSplitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_resellPaiementSplitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dataFeedEURUSD\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_eventContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_eventName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_nftTemplateContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ticketReservationFactoryAddress\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"royalty\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"ERC2981InvalidDefaultRoyalty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC2981InvalidDefaultRoyaltyReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"ERC2981InvalidTokenRoyalty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC2981InvalidTokenRoyaltyReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ticketTypeId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ticketId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewTicket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"AllowedCrypto\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"paytoken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_paytoken\",\"type\":\"address\"}],\"name\":\"addCurrency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withERC20\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_cryptoId\",\"type\":\"uint256\"}],\"name\":\"buyTicket\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationNumber\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"createReservation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eventContract\",\"outputs\":[{\"internalType\":\"contract IEventContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_fan\",\"type\":\"address\"}],\"name\":\"fetchTicketsForOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"ticketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hashedTicket\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchasedDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"internalType\":\"struct TicketContract.Ticket[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEventContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestData\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestDataMaticUsd\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getResellPaymentSplitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getTicketTypesForTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalTicketsSold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mintTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ticketTypeId\",\"type\":\"uint256\"}],\"name\":\"mintTicketAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"name\":\"mulDiv\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nbTicketForUserAndTicketTypes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"organizerPaymentSplitter\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resellPaiementSplitter\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"_newroyalty\",\"type\":\"uint96\"}],\"name\":\"setRoyalty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"}],\"name\":\"setTicketURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ticketReservationContract\",\"outputs\":[{\"internalType\":\"contract ITicketReservationContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ticketSpecificUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ticketTypesForTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tickets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ticketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hashedTicket\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"pricePaid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchasedDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tixSellpaymentSplitter\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ERC2981InvalidDefaultRoyalty(uint256,uint256)\":[{\"details\":\"The default royalty set is invalid (eg. (numerator / denominator) >= 1).\"}],\"ERC2981InvalidDefaultRoyaltyReceiver(address)\":[{\"details\":\"The default royalty receiver is invalid.\"}],\"ERC2981InvalidTokenRoyalty(uint256,uint256,uint256)\":[{\"details\":\"The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1).\"}],\"ERC2981InvalidTokenRoyaltyReceiver(uint256,address)\":[{\"details\":\"The royalty receiver for `tokenId` is invalid.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TicketContract.sol\":\"TicketContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x89b84f7b1b2d6c294cd6b9a9f661c1cfb1b9b10ca7bac5b3445850a8ce96dcf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44f961aefa43a50c94d8b68e749235b2cf3bd1de18bf6f2e5e1c0fd9a59e06ea\",\"dweb:/ipfs/QmNzd2bnJidavPtt2hQ1em387T6W37n3kDx8WrneCZozxV\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd14c8d95a432c755e0eb246b9728b7e923aa7ca1c6a0665f91ebab0d97792b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://600133d5cd233bd9e9e39ebbb063230700e808fe7c490ce26cae487edfb407b8\",\"dweb:/ipfs/QmT3W8bhVvStQA8GxpCRGVn6DTcjhnPoMaEvTJAFShP4FA\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x87e4eac873515f713e858d72150a7d2a69ddd531967e60a5d6ba77127db1fd54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0767e22e108183ebab97542c97bb95a619c96b4b6a7f59513c7320a501b1f355\",\"dweb:/ipfs/Qma2MBaEbZcutxkdrEUEayrV1FXQF1qLpYJGpGo49iGHux\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x6f7014d688c4386c26e8c02371ecb7f7740d2542f1ecadffd5a3084511e2a344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81d8f5aabdb088f19c80ce460a2e670ecc651ff4ca46878d239e29bfe705e52c\",\"dweb:/ipfs/QmUveDGa7vEtYBxbVUajNcDvyjP6oaD7Va1M5qwZbudmAn\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"abdk-libraries-solidity/ABDKMathQuad.sol\":{\"keccak256\":\"0x9694a9f6fcadd4fa917efa674de42a74b8fbab8d68924f771ea5cc5e1a301434\",\"license\":\"BSD-4-Clause\",\"urls\":[\"bzz-raw://5ab2de42e1d920443704dcc9e1de76157dd1df38cf770e76f879c7a6cc93b796\",\"dweb:/ipfs/QmXLxE4cJDph4EtVhsCP4aik5PLFauFABv2o4ea47iDwDo\"]},\"contracts/TicketContract.sol\":{\"keccak256\":\"0xae42cd90b41fafc8e1d4c6fb8e9833cc66d881ef221abe8b54ce044312319964\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7f438a9451db5a2084ade561d5ea6cb68b1171b0eb28954c21980c040af246c3\",\"dweb:/ipfs/QmXqmsFSpTnSQNLPHaxLywSynbqW4iZGuUJX5LCMo6zKnT\"]},\"contracts/TixSellEventLibrary.sol\":{\"keccak256\":\"0x213f6a6adffbdaae40ca88f693d0b468061c2bff3c9e6c7dafb5ff5dc2d3b66b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f442850c805e04ad046a6c1ee0a61b1599b2775b796a304c672eba3122e4e3d\",\"dweb:/ipfs/QmetQwUGYXeNErgHGbDB5KmQnpzNA7eDtsYgsZFNcxuaqE\"]},\"contracts/TixSellLibraries.sol\":{\"keccak256\":\"0xc42129175af39e8039d77c98dc97772f9d20a5c203c131b39ddf9644d6a2f44d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e908af4696099f9b19eed848d14fc1b2fa28610e64863d7e88ad172710d72d49\",\"dweb:/ipfs/QmZaE8VGCdw6DWhhFpWcGLr42PxwgTLP4dHuiVCvww5ap7\"]},\"contracts/TixSellReservationLibrary.sol\":{\"keccak256\":\"0x46453ae5d95f3b639579bebbfd32939cdfd903d30d613a1648168576fb55799a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b9e33f45c65c735d47d307f730bd786d470535a033d079daf33dda90433f8904\",\"dweb:/ipfs/QmUWrtUCQgAVbN83Rf66vgo2bsX5SGjeKxQcebfWUpQADi\"]},\"contracts/TokenPaymentSplitter.sol\":{\"keccak256\":\"0x79717f00c12ed231f95b55ed0f2373347a2faca911e8cc1284a4807836d5205b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99fa2c12dd8a63e6ed3f23d50d3934cf843d42b6e77821d1b51d500a9fcdf8a8\",\"dweb:/ipfs/QmRWsQSQM9X58Sxa471ramzCD4uLKSLdfoBdr3FwTtQdpv\"]},\"contracts/factories/ITicketReservationFactory.sol\":{\"keccak256\":\"0x9ae0e1da2df1d7591e2c4e75bf2dd62cc7c30f18cac17e6800f425a159a9a58d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fffca80b5ea1dce69109dc0c3bafde0a6aa56267df339f970a49a4f088ab77d2\",\"dweb:/ipfs/QmeRQ6dVu6gzHgcRW7kZRNEX5qFEmzww2agkPTano3jNDM\"]},\"contracts/interfaces/IEventContract.sol\":{\"keccak256\":\"0xe1802cfbfa4afb9683d529a171110e5039d61a3b160914512a758f7f545c55e2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://40713bfd734b2b9ae4e825a645875d9de21e4aec2e0dfa83a226cb4f549803ce\",\"dweb:/ipfs/QmdXScaSHUEbnYYE6cxKLFGKtHPD8HpXYr9mdu8Y8tDArT\"]},\"contracts/interfaces/ITicketReservationContract.sol\":{\"keccak256\":\"0x9852cb31218119f03689cc94500a31fec14710398cc357786d35805631707531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52516dab24bb01e05dd14378e9ca716254229c6a4bb2ea7c44f57e73ff0072c3\",\"dweb:/ipfs/QmahdaG9FQ1mMFEhp7pxwZw1jhQ4hZCCWxFXBUjnNrS7x9\"]},\"contracts/interfaces/ITicketTypeContract.sol\":{\"keccak256\":\"0xd2785777cfb16741e16f737e1c3c0492728630ecadbb654461b73f632f8b4dfa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4e9409733c6eb980c30477443c201d47518bcde196e0df2d8aa7cb79079eae37\",\"dweb:/ipfs/QmUe1zUQy6RCJNjaiLoQK95Y9tmv4RYMxYcdYQxCkpc3BZ\"]},\"contracts/interfaces/ITixSellNftTemplate.sol\":{\"keccak256\":\"0x949831b483a43cd210d98dcf847e7dda055b10c15a3f8f330a471210d470a998\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://da7be1ead1d92fde08aa88b70f31c8c0f3d0ba95352ef3dc5700187df0cdfc4b\",\"dweb:/ipfs/QmW6fFGR6Nc7h66w6jawFA5jVgbnorLE4esAtPBRRTGgLN\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 2325,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_defaultRoyaltyInfo",
								"offset": 0,
								"slot": "0",
								"type": "t_struct(RoyaltyInfo)2322_storage"
							},
							{
								"astId": 2330,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_tokenRoyaltyInfo",
								"offset": 0,
								"slot": "1",
								"type": "t_mapping(t_uint256,t_struct(RoyaltyInfo)2322_storage)"
							},
							{
								"astId": 1166,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_name",
								"offset": 0,
								"slot": "2",
								"type": "t_string_storage"
							},
							{
								"astId": 1168,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_symbol",
								"offset": 0,
								"slot": "3",
								"type": "t_string_storage"
							},
							{
								"astId": 1172,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_owners",
								"offset": 0,
								"slot": "4",
								"type": "t_mapping(t_uint256,t_address)"
							},
							{
								"astId": 1176,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_balances",
								"offset": 0,
								"slot": "5",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 1180,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_tokenApprovals",
								"offset": 0,
								"slot": "6",
								"type": "t_mapping(t_uint256,t_address)"
							},
							{
								"astId": 1186,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_operatorApprovals",
								"offset": 0,
								"slot": "7",
								"type": "t_mapping(t_address,t_mapping(t_address,t_bool))"
							},
							{
								"astId": 433,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_owner",
								"offset": 0,
								"slot": "8",
								"type": "t_address"
							},
							{
								"astId": 72,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_roles",
								"offset": 0,
								"slot": "9",
								"type": "t_mapping(t_bytes32,t_struct(RoleData)67_storage)"
							},
							{
								"astId": 9554,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "_ticketIds",
								"offset": 0,
								"slot": "10",
								"type": "t_uint256"
							},
							{
								"astId": 9557,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "royaltyValue",
								"offset": 0,
								"slot": "11",
								"type": "t_uint96"
							},
							{
								"astId": 9562,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "tixSellpaymentSplitter",
								"offset": 12,
								"slot": "11",
								"type": "t_address_payable"
							},
							{
								"astId": 9564,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "resellPaiementSplitter",
								"offset": 0,
								"slot": "12",
								"type": "t_address_payable"
							},
							{
								"astId": 9566,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "organizerPaymentSplitter",
								"offset": 0,
								"slot": "13",
								"type": "t_address_payable"
							},
							{
								"astId": 9569,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "dataFeed",
								"offset": 0,
								"slot": "14",
								"type": "t_contract(AggregatorV3Interface)45"
							},
							{
								"astId": 9572,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "dataFeedMatic",
								"offset": 0,
								"slot": "15",
								"type": "t_contract(AggregatorV3Interface)45"
							},
							{
								"astId": 9575,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "eventContract",
								"offset": 0,
								"slot": "16",
								"type": "t_contract(IEventContract)11705"
							},
							{
								"astId": 9578,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "ticketReservationContract",
								"offset": 0,
								"slot": "17",
								"type": "t_contract(ITicketReservationContract)11740"
							},
							{
								"astId": 9588,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "AllowedCrypto",
								"offset": 0,
								"slot": "18",
								"type": "t_array(t_struct(TokenInfo)9584_storage)dyn_storage"
							},
							{
								"astId": 9591,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "nftTemplateContract",
								"offset": 0,
								"slot": "19",
								"type": "t_contract(ITixSellNftTemplateContract)11790"
							},
							{
								"astId": 9613,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "tickets",
								"offset": 0,
								"slot": "20",
								"type": "t_mapping(t_uint256,t_struct(Ticket)9608_storage)"
							},
							{
								"astId": 9617,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "ticketSpecificUri",
								"offset": 0,
								"slot": "21",
								"type": "t_mapping(t_uint256,t_string_storage)"
							},
							{
								"astId": 9621,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "ticketTypesForTicket",
								"offset": 0,
								"slot": "22",
								"type": "t_mapping(t_uint256,t_uint256)"
							},
							{
								"astId": 9627,
								"contract": "contracts/TicketContract.sol:TicketContract",
								"label": "nbTicketForUserAndTicketTypes",
								"offset": 0,
								"slot": "23",
								"type": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_address_payable": {
								"encoding": "inplace",
								"label": "address payable",
								"numberOfBytes": "20"
							},
							"t_array(t_struct(TokenInfo)9584_storage)dyn_storage": {
								"base": "t_struct(TokenInfo)9584_storage",
								"encoding": "dynamic_array",
								"label": "struct TicketContract.TokenInfo[]",
								"numberOfBytes": "32"
							},
							"t_bool": {
								"encoding": "inplace",
								"label": "bool",
								"numberOfBytes": "1"
							},
							"t_bytes32": {
								"encoding": "inplace",
								"label": "bytes32",
								"numberOfBytes": "32"
							},
							"t_contract(AggregatorV3Interface)45": {
								"encoding": "inplace",
								"label": "contract AggregatorV3Interface",
								"numberOfBytes": "20"
							},
							"t_contract(IERC20)807": {
								"encoding": "inplace",
								"label": "contract IERC20",
								"numberOfBytes": "20"
							},
							"t_contract(IEventContract)11705": {
								"encoding": "inplace",
								"label": "contract IEventContract",
								"numberOfBytes": "20"
							},
							"t_contract(ITicketReservationContract)11740": {
								"encoding": "inplace",
								"label": "contract ITicketReservationContract",
								"numberOfBytes": "20"
							},
							"t_contract(ITixSellNftTemplateContract)11790": {
								"encoding": "inplace",
								"label": "contract ITixSellNftTemplateContract",
								"numberOfBytes": "20"
							},
							"t_mapping(t_address,t_bool)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => bool)",
								"numberOfBytes": "32",
								"value": "t_bool"
							},
							"t_mapping(t_address,t_mapping(t_address,t_bool))": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => mapping(address => bool))",
								"numberOfBytes": "32",
								"value": "t_mapping(t_address,t_bool)"
							},
							"t_mapping(t_address,t_mapping(t_uint256,t_uint256))": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => mapping(uint256 => uint256))",
								"numberOfBytes": "32",
								"value": "t_mapping(t_uint256,t_uint256)"
							},
							"t_mapping(t_address,t_uint256)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_mapping(t_bytes32,t_struct(RoleData)67_storage)": {
								"encoding": "mapping",
								"key": "t_bytes32",
								"label": "mapping(bytes32 => struct AccessControl.RoleData)",
								"numberOfBytes": "32",
								"value": "t_struct(RoleData)67_storage"
							},
							"t_mapping(t_uint256,t_address)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => address)",
								"numberOfBytes": "32",
								"value": "t_address"
							},
							"t_mapping(t_uint256,t_string_storage)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => string)",
								"numberOfBytes": "32",
								"value": "t_string_storage"
							},
							"t_mapping(t_uint256,t_struct(RoyaltyInfo)2322_storage)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => struct ERC2981.RoyaltyInfo)",
								"numberOfBytes": "32",
								"value": "t_struct(RoyaltyInfo)2322_storage"
							},
							"t_mapping(t_uint256,t_struct(Ticket)9608_storage)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => struct TicketContract.Ticket)",
								"numberOfBytes": "32",
								"value": "t_struct(Ticket)9608_storage"
							},
							"t_mapping(t_uint256,t_uint256)": {
								"encoding": "mapping",
								"key": "t_uint256",
								"label": "mapping(uint256 => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_string_storage": {
								"encoding": "bytes",
								"label": "string",
								"numberOfBytes": "32"
							},
							"t_struct(RoleData)67_storage": {
								"encoding": "inplace",
								"label": "struct AccessControl.RoleData",
								"members": [
									{
										"astId": 64,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "hasRole",
										"offset": 0,
										"slot": "0",
										"type": "t_mapping(t_address,t_bool)"
									},
									{
										"astId": 66,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "adminRole",
										"offset": 0,
										"slot": "1",
										"type": "t_bytes32"
									}
								],
								"numberOfBytes": "64"
							},
							"t_struct(RoyaltyInfo)2322_storage": {
								"encoding": "inplace",
								"label": "struct ERC2981.RoyaltyInfo",
								"members": [
									{
										"astId": 2319,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "receiver",
										"offset": 0,
										"slot": "0",
										"type": "t_address"
									},
									{
										"astId": 2321,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "royaltyFraction",
										"offset": 20,
										"slot": "0",
										"type": "t_uint96"
									}
								],
								"numberOfBytes": "32"
							},
							"t_struct(Ticket)9608_storage": {
								"encoding": "inplace",
								"label": "struct TicketContract.Ticket",
								"members": [
									{
										"astId": 9593,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "ticketId",
										"offset": 0,
										"slot": "0",
										"type": "t_uint256"
									},
									{
										"astId": 9595,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "ticketTypeId",
										"offset": 0,
										"slot": "1",
										"type": "t_uint256"
									},
									{
										"astId": 9597,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "owner",
										"offset": 0,
										"slot": "2",
										"type": "t_address"
									},
									{
										"astId": 9599,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "hashedTicket",
										"offset": 0,
										"slot": "3",
										"type": "t_bytes32"
									},
									{
										"astId": 9601,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "pricePaid",
										"offset": 0,
										"slot": "4",
										"type": "t_uint256"
									},
									{
										"astId": 9603,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "purchasedDate",
										"offset": 0,
										"slot": "5",
										"type": "t_uint256"
									},
									{
										"astId": 9605,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "used",
										"offset": 0,
										"slot": "6",
										"type": "t_bool"
									},
									{
										"astId": 9607,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "exists",
										"offset": 1,
										"slot": "6",
										"type": "t_bool"
									}
								],
								"numberOfBytes": "224"
							},
							"t_struct(TokenInfo)9584_storage": {
								"encoding": "inplace",
								"label": "struct TicketContract.TokenInfo",
								"members": [
									{
										"astId": 9581,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "paytoken",
										"offset": 0,
										"slot": "0",
										"type": "t_contract(IERC20)807"
									},
									{
										"astId": 9583,
										"contract": "contracts/TicketContract.sol:TicketContract",
										"label": "exists",
										"offset": 20,
										"slot": "0",
										"type": "t_bool"
									}
								],
								"numberOfBytes": "32"
							},
							"t_uint256": {
								"encoding": "inplace",
								"label": "uint256",
								"numberOfBytes": "32"
							},
							"t_uint96": {
								"encoding": "inplace",
								"label": "uint96",
								"numberOfBytes": "12"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/TixSellEventLibrary.sol": {
				"TixSellEventLibrary": {
					"abi": [],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TixSellEventLibrary.sol\":64:419  library TixSellEventLibrary {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"contracts/TixSellEventLibrary.sol\":64:419  library TixSellEventLibrary {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa26469706673582212202683ff61c424463a3636c0f1ee67b852e67f86412d0c27f1dcf6c5f57a55d79864736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212202683ff61c424463a3636c0f1ee67b852e67f86412d0c27f1dcf6c5f57a55d79864736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DUP4 SELFDESTRUCT PUSH2 0xC424 CHAINID GASPRICE CALLDATASIZE CALLDATASIZE 0xC0 CALL 0xEE PUSH8 0xB852E67F86412D0C 0x27 CALL 0xDC 0xF6 0xC5 CREATE2 PUSH27 0x55D79864736F6C6343000814003300000000000000000000000000 ",
							"sourceMap": "64:355:24:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea26469706673582212202683ff61c424463a3636c0f1ee67b852e67f86412d0c27f1dcf6c5f57a55d79864736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DUP4 SELFDESTRUCT PUSH2 0xC424 CHAINID GASPRICE CALLDATASIZE CALLDATASIZE 0xC0 CALL 0xEE PUSH8 0xB852E67F86412D0C 0x27 CALL 0xDC 0xF6 0xC5 CREATE2 PUSH27 0x55D79864736F6C6343000814003300000000000000000000000000 ",
							"sourceMap": "64:355:24:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH",
									"source": 24,
									"value": "80"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "DUP1",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH",
									"source": 24,
									"value": "40"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "MSTORE",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "CALLVALUE",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH [tag]",
									"source": 24,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "JUMPI",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH #[$]",
									"source": 24,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "SWAP1",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "DUP2",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH [$]",
									"source": 24,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "DUP3",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "CODECOPY",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "ADDRESS",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "DUP2",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "ASSIGNIMMUTABLE",
									"source": 24,
									"value": "library_deploy_address"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "RETURN",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "tag",
									"source": 24,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "JUMPDEST",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "PUSH",
									"source": 24,
									"value": "0"
								},
								{
									"begin": 64,
									"end": 419,
									"name": "DUP1",
									"source": 24
								},
								{
									"begin": 64,
									"end": 419,
									"name": "REVERT",
									"source": 24
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212202683ff61c424463a3636c0f1ee67b852e67f86412d0c27f1dcf6c5f57a55d79864736f6c63430008140033",
									".code": [
										{
											"begin": 64,
											"end": 419,
											"name": "PUSH",
											"source": 24,
											"value": "0"
										},
										{
											"begin": 64,
											"end": 419,
											"name": "DUP1",
											"source": 24
										},
										{
											"begin": 64,
											"end": 419,
											"name": "REVERT",
											"source": 24
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TixSellEventLibrary.sol\":\"TixSellEventLibrary\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellEventLibrary.sol\":{\"keccak256\":\"0x213f6a6adffbdaae40ca88f693d0b468061c2bff3c9e6c7dafb5ff5dc2d3b66b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f442850c805e04ad046a6c1ee0a61b1599b2775b796a304c672eba3122e4e3d\",\"dweb:/ipfs/QmetQwUGYXeNErgHGbDB5KmQnpzNA7eDtsYgsZFNcxuaqE\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/TixSellLibraries.sol": {
				"TixSellLibrary": {
					"abi": [],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TixSellLibraries.sol\":64:1566  library TixSellLibrary {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"contracts/TixSellLibraries.sol\":64:1566  library TixSellLibrary {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa26469706673582212204c5ed0444596a4540a4da1db9520996e2ef1456d40cc0f05f9b5efa6f8aac8d364736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212204c5ed0444596a4540a4da1db9520996e2ef1456d40cc0f05f9b5efa6f8aac8d364736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0x5E 0xD0 PREVRANDAO GASLIMIT SWAP7 LOG4 SLOAD EXP 0x4D LOG1 0xDB SWAP6 KECCAK256 SWAP10 PUSH15 0x2EF1456D40CC0F05F9B5EFA6F8AAC8 0xD3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "64:1502:25:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea26469706673582212204c5ed0444596a4540a4da1db9520996e2ef1456d40cc0f05f9b5efa6f8aac8d364736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0x5E 0xD0 PREVRANDAO GASLIMIT SWAP7 LOG4 SLOAD EXP 0x4D LOG1 0xDB SWAP6 KECCAK256 SWAP10 PUSH15 0x2EF1456D40CC0F05F9B5EFA6F8AAC8 0xD3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ",
							"sourceMap": "64:1502:25:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH",
									"source": 25,
									"value": "80"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "DUP1",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH",
									"source": 25,
									"value": "40"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "MSTORE",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "CALLVALUE",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH [tag]",
									"source": 25,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "JUMPI",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH #[$]",
									"source": 25,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "SWAP1",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "DUP2",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH [$]",
									"source": 25,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "DUP3",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "CODECOPY",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "ADDRESS",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "DUP2",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "ASSIGNIMMUTABLE",
									"source": 25,
									"value": "library_deploy_address"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "RETURN",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "tag",
									"source": 25,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "JUMPDEST",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "PUSH",
									"source": 25,
									"value": "0"
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "DUP1",
									"source": 25
								},
								{
									"begin": 64,
									"end": 1566,
									"name": "REVERT",
									"source": 25
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212204c5ed0444596a4540a4da1db9520996e2ef1456d40cc0f05f9b5efa6f8aac8d364736f6c63430008140033",
									".code": [
										{
											"begin": 64,
											"end": 1566,
											"name": "PUSH",
											"source": 25,
											"value": "0"
										},
										{
											"begin": 64,
											"end": 1566,
											"name": "DUP1",
											"source": 25
										},
										{
											"begin": 64,
											"end": 1566,
											"name": "REVERT",
											"source": 25
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TixSellLibraries.sol\":\"TixSellLibrary\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellLibraries.sol\":{\"keccak256\":\"0xc42129175af39e8039d77c98dc97772f9d20a5c203c131b39ddf9644d6a2f44d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e908af4696099f9b19eed848d14fc1b2fa28610e64863d7e88ad172710d72d49\",\"dweb:/ipfs/QmZaE8VGCdw6DWhhFpWcGLr42PxwgTLP4dHuiVCvww5ap7\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/TixSellReservationLibrary.sol": {
				"TixSellReservationLibrary": {
					"abi": [],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TixSellReservationLibrary.sol\":64:351  library TixSellReservationLibrary {... */\n  0x80\n  dup1\n  0x40\n  mstore\n  jumpi(tag_1, callvalue)\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  address\n  dup2\n  assignImmutable(\"0xcd5a02d485074f67d63783a7acdae578618045c23ccf47fa4e3f1a01c11714ad\")\n  return\ntag_1:\n  0x00\n  dup1\n  revert\nstop\n\nsub_0: assembly {\n        /* \"contracts/TixSellReservationLibrary.sol\":64:351  library TixSellReservationLibrary {... */\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220ba85fa3fb4e3c6eb856af19f0a590bb353053b845800d47d7b1f60b36330aafd64736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ba85fa3fb4e3c6eb856af19f0a590bb353053b845800d47d7b1f60b36330aafd64736f6c63430008140033",
							"opcodes": "PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA DUP6 STATICCALL EXTCODEHASH 0xB4 0xE3 0xC6 0xEB DUP6 PUSH11 0xF19F0A590BB353053B8458 STOP 0xD4 PUSH30 0x7B1F60B36330AAFD64736F6C634300081400330000000000000000000000 ",
							"sourceMap": "64:287:26:-:0;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "5f80fdfea2646970667358221220ba85fa3fb4e3c6eb856af19f0a590bb353053b845800d47d7b1f60b36330aafd64736f6c63430008140033",
							"opcodes": "PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA DUP6 STATICCALL EXTCODEHASH 0xB4 0xE3 0xC6 0xEB DUP6 PUSH11 0xF19F0A590BB353053B8458 STOP 0xD4 PUSH30 0x7B1F60B36330AAFD64736F6C634300081400330000000000000000000000 ",
							"sourceMap": "64:287:26:-:0;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "11400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH",
									"source": 26,
									"value": "80"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "DUP1",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH",
									"source": 26,
									"value": "40"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "MSTORE",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "CALLVALUE",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH [tag]",
									"source": 26,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "JUMPI",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH #[$]",
									"source": 26,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "SWAP1",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "DUP2",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH [$]",
									"source": 26,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "DUP3",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "CODECOPY",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "ADDRESS",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "DUP2",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "ASSIGNIMMUTABLE",
									"source": 26,
									"value": "library_deploy_address"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "RETURN",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "tag",
									"source": 26,
									"value": "1"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "JUMPDEST",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "PUSH",
									"source": 26,
									"value": "0"
								},
								{
									"begin": 64,
									"end": 351,
									"name": "DUP1",
									"source": 26
								},
								{
									"begin": 64,
									"end": 351,
									"name": "REVERT",
									"source": 26
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220ba85fa3fb4e3c6eb856af19f0a590bb353053b845800d47d7b1f60b36330aafd64736f6c63430008140033",
									".code": [
										{
											"begin": 64,
											"end": 351,
											"name": "PUSH",
											"source": 26,
											"value": "0"
										},
										{
											"begin": 64,
											"end": 351,
											"name": "DUP1",
											"source": 26
										},
										{
											"begin": 64,
											"end": 351,
											"name": "REVERT",
											"source": 26
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TixSellReservationLibrary.sol\":\"TixSellReservationLibrary\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellReservationLibrary.sol\":{\"keccak256\":\"0x46453ae5d95f3b639579bebbfd32939cdfd903d30d613a1648168576fb55799a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b9e33f45c65c735d47d307f730bd786d470535a033d079daf33dda90433f8904\",\"dweb:/ipfs/QmUWrtUCQgAVbN83Rf66vgo2bsX5SGjeKxQcebfWUpQADi\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/TokenPaymentSplitter.sol": {
				"PaymentSplitter": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address[]",
									"name": "payees",
									"type": "address[]"
								},
								{
									"internalType": "uint256[]",
									"name": "shares_",
									"type": "uint256[]"
								}
							],
							"stateMutability": "payable",
							"type": "constructor"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "target",
									"type": "address"
								}
							],
							"name": "AddressEmptyCode",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "AddressInsufficientBalance",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "FailedInnerCall",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "token",
									"type": "address"
								}
							],
							"name": "SafeERC20FailedOperation",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "ERC20PaymentReleased",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "shares",
									"type": "uint256"
								}
							],
							"name": "PayeeAdded",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "PaymentReceived",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "PaymentReleased",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "index",
									"type": "uint256"
								}
							],
							"name": "payee",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "releasable",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "releasable",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								}
							],
							"name": "release",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "release",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "released",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "released",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "shares",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								}
							],
							"name": "totalReleased",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalReleased",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalShares",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"stateMutability": "payable",
							"type": "receive"
						}
					],
					"devdoc": {
						"errors": {
							"AddressEmptyCode(address)": [
								{
									"details": "There's no code at `target` (it is not a contract)."
								}
							],
							"AddressInsufficientBalance(address)": [
								{
									"details": "The ETH balance of the account is not enough to perform the operation."
								}
							],
							"FailedInnerCall()": [
								{
									"details": "A call to an address target failed. The target may have reverted."
								}
							],
							"SafeERC20FailedOperation(address)": [
								{
									"details": "An operation with an ERC20 token failed."
								}
							]
						},
						"kind": "dev",
						"methods": {
							"constructor": {
								"details": "Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at the matching position in the `shares` array. All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`."
							},
							"payee(uint256)": {
								"details": "Getter for the address of the payee number `index`."
							},
							"releasable(address)": {
								"details": "Getter for the amount of payee's releasable Ether."
							},
							"releasable(address,address)": {
								"details": "Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract."
							},
							"release(address)": {
								"details": "Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals."
							},
							"release(address,address)": {
								"details": "Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract."
							},
							"released(address)": {
								"details": "Getter for the amount of Ether already released to a payee."
							},
							"released(address,address)": {
								"details": "Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract."
							},
							"shares(address)": {
								"details": "Getter for the amount of shares held by an account."
							},
							"totalReleased()": {
								"details": "Getter for the total amount of Ether already released."
							},
							"totalReleased(address)": {
								"details": "Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract."
							},
							"totalShares()": {
								"details": "Getter for the total shares held by payees."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  0x40\n  0x80\n  dup2\n  mstore\n  bytecodeSize\n  dup1\n  codesize\n  sub\n  dup1\n  tag_4\n  dup2\n  tag_1\n  jump\t// in\ntag_4:\n  swap3\n  dup4\n  codecopy\n  dup2\n  add\n  swap2\n  dup1\n  dup3\n  dup5\n  sub\n  slt\n  tag_24\n  jumpi\n  dup2\n  mload\n  sub(shl(0x40, 0x01), 0x01)\n  swap4\n  swap1\n  dup5\n  dup2\n  gt\n  tag_24\n  jumpi\n  dup4\n  add\n  swap4\n  dup2\n  0x1f\n  dup7\n  add\n  slt\n  iszero\n  tag_24\n  jumpi\n  dup5\n  mload\n  swap4\n  tag_11\n  tag_12\n  dup7\n  tag_2\n  jump\t// in\ntag_12:\n  tag_1\n  jump\t// in\ntag_11:\n  swap6\n  dup7\n  swap6\n  dup1\n  dup9\n  mstore\n  0x20\n  dup1\n  dup1\n  swap10\n  add\n  swap2\n  0x05\n  shl\n  dup4\n  add\n  add\n  swap2\n  dup6\n  dup4\n  gt\n  tag_24\n  jumpi\n  dup9\n  add\n  swap1\ntag_15:\n  dup3\n  dup3\n  lt\n  tag_16\n  jumpi\n  pop\n  pop\n  pop\n  dup6\n  dup2\n  add\n  mload\n  swap2\n  dup3\n  gt\n  tag_24\n  jumpi\n  add\n  swap1\n  dup1\n  0x1f\n  dup4\n  add\n  slt\n  iszero\n  tag_24\n  jumpi\n  dup2\n  mload\n  swap2\n  tag_22\n  tag_12\n  dup5\n  tag_2\n  jump\t// in\ntag_22:\n  swap3\n  dup7\n  dup1\n  dup6\n  dup4\n  dup2\n  mstore\n  add\n  swap2\n  0x05\n  shl\n  dup4\n  add\n  add\n  swap3\n  dup4\n  gt\n  tag_24\n  jumpi\n  dup7\n  dup1\n  swap3\n  add\n  swap1\ntag_26:\n  dup4\n  dup3\n  lt\n  tag_27\n  jumpi\n  pop\n  pop\n  pop\n  pop\n  dup3\n  mload\n  dup2\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1295:1326  payees.length == shares_.length */\n  sub\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  tag_29\n  jumpi\n  dup3\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1399:1416  payees.length > 0 */\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  tag_31\n  jumpi\n  0x00\n    /* \"contracts/TokenPaymentSplitter.sol\":1497:1500  i++ */\ntag_33:\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup4\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1478:1495  i < payees.length */\n  dup2\n  lt\n  iszero\n  tag_34\n  jumpi\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TokenPaymentSplitter.sol\":1526:1535  payees[i] */\n  tag_36\n  dup3\n  dup7\n  tag_3\n  jump\t// in\ntag_36:\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  mload\n  and\n    /* \"contracts/TokenPaymentSplitter.sol\":1537:1547  shares_[i] */\n  tag_37\n  dup3\n  dup5\n  tag_3\n  jump\t// in\ntag_37:\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":6942:6963  account != address(0) */\n  dup2\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  tag_38\n  jumpi\n    /* \"contracts/TokenPaymentSplitter.sol\":7030:7041  shares_ > 0 */\n  dup1\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  tag_40\n  jumpi\n  dup2\n  0x00\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7093:7100  _shares */\n  0x02\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup1\n  dup9\n  mstore\n  dup6\n  0x00\n  keccak256\n  sload\n  tag_42\n  jumpi\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  swap1\n  dup2\n  sload\n  0x010000000000000000\n  dup2\n  lt\n  iszero\n  tag_44\n  jumpi\n  0x01\n  dup2\n  add\n  dup1\n  dup5\n  sstore\n  dup2\n  lt\n  iszero\n  tag_46\n  jumpi\n  dup3\n  0x00\n  mstore\n  dup10\n  0x00\n  keccak256\n  add\n  dup5\n  0x01\n  dup1\n  0xa0\n  shl\n  sub\n  not\n  dup3\n  sload\n  and\n  or\n  swap1\n  sstore\n  dup4\n  0x00\n  mstore\n  dup9\n  mstore\n  dup2\n  dup7\n  0x00\n  keccak256\n  sstore\n  sload(0x00)\n  swap1\n  dup3\n  dup3\n  add\n  dup1\n  swap3\n  gt\n  tag_48\n  jumpi\n  pop\n  0x00\n  sstore\n  dup5\n  mload\n  swap2\n  dup3\n  mstore\n  dup7\n  dup3\n  add\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7292:7320  PayeeAdded(account, shares_) */\n  0x40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac\n  swap1\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup5\n  swap1\n    /* \"contracts/TokenPaymentSplitter.sol\":7292:7320  PayeeAdded(account, shares_) */\n  log1\n  not(0x00)\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup2\n  eq\n  tag_50\n  jumpi\n  0x01\n  add\n    /* \"contracts/TokenPaymentSplitter.sol\":1463:1476  uint256 i = 0 */\n  jump(tag_33)\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\ntag_50:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  0x11\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  mstore\n  revert(0x00, 0x24)\ntag_48:\n  0x11\n  swap1\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_46:\n  0x32\n  dup4\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_44:\n  0x41\n  dup4\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_42:\n  dup6\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup2\n  add\n  dup10\n  swap1\n  mstore\n  0x2b\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206163636f756e7420616c7265616479\n  0x44\n  dup3\n  add\n  mstore\n  shl(0xa8, 0x2068617320736861726573)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\ntag_40:\n  dup5\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup2\n  add\n  dup9\n  swap1\n  mstore\n  0x1d\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a20736861726573206172652030000000\n  0x44\n  dup3\n  add\n  mstore\n  0x64\n  swap1\n  revert\ntag_38:\n  dup5\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  dup2\n  add\n  dup9\n  swap1\n  mstore\n  0x2c\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206163636f756e742069732074686520\n  0x44\n  dup3\n  add\n  mstore\n  shl(0xa0, 0x7a65726f2061646472657373)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\n    /* \"contracts/TokenPaymentSplitter.sol\":1478:1495  i < payees.length */\ntag_34:\n  dup3\n    /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n  mload\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  return\ntag_31:\n  dup2\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n  0x04\n  dup2\n  add\n  dup6\n  swap1\n  mstore\n  0x1a\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206e6f20706179656573000000000000\n  0x44\n  dup3\n  add\n  mstore\n  0x64\n  swap1\n  revert\ntag_29:\n  dup2\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n  0x04\n  dup2\n  add\n  dup6\n  swap1\n  mstore\n  0x32\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a2070617965657320616e642073686172\n  0x44\n  dup3\n  add\n  mstore\n  shl(0x73, 0x0cae640d8cadccee8d040dad2e6dac2e8c6d)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\ntag_27:\n  dup2\n  mload\n  dup2\n  mstore\n  swap1\n  dup3\n  add\n  swap1\n  dup3\n  add\n  jump(tag_26)\ntag_24:\n  0x00\n  dup1\n  revert\ntag_16:\n  dup2\n  mload\n  sub(shl(0xa0, 0x01), 0x01)\n  dup2\n  and\n  dup2\n  sub\n  tag_24\n  jumpi\n  dup2\n  mstore\n  swap1\n  dup9\n  add\n  swap1\n  dup9\n  add\n  jump(tag_15)\ntag_1:\n  mload(0x40)\n  swap2\n  swap1\n  0x1f\n  add\n  not(0x1f)\n  and\n  dup3\n  add\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  dup4\n  dup3\n  lt\n  or\n  tag_54\n  jumpi\n  0x40\n  mstore\n  jump\t// out\ntag_54:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x41)\n  revert(0x00, 0x24)\ntag_2:\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  tag_54\n  jumpi\n  0x05\n  shl\n  0x20\n  add\n  swap1\n  jump\t// out\ntag_3:\n  dup1\n  mload\n  dup3\n  lt\n  iszero\n  tag_58\n  jumpi\n  0x20\n  swap2\n  0x05\n  shl\n  add\n  add\n  swap1\n  jump\t// out\ntag_58:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x32)\n  revert(0x00, 0x24)\nstop\n\nsub_0: assembly {\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x40\n      0x80\n      dup2\n      mstore\n      0x04\n      dup1\n      calldatasize\n      lt\n      iszero\n      tag_13\n      jumpi\n    tag_14:\n      pop\n      jumpi(tag_15, iszero(calldatasize))\n      0x00\n      dup1\n      revert\n    tag_15:\n      mload\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2157:2166  msg.value */\n      callvalue\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x20\n      dup3\n      add\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2127:2167  PaymentReceived(_msgSender(), msg.value) */\n      0x6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x40\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":2127:2167  PaymentReceived(_msgSender(), msg.value) */\n      log1\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      stop\n    tag_13:\n      0x00\n      swap1\n      dup2\n      calldataload\n      0xe0\n      shr\n      swap1\n      dup2\n      0x19165587\n      eq\n      tag_18\n      jumpi\n      dup2\n      0x3a98ef39\n      eq\n      tag_20\n      jumpi\n      dup2\n      0x406072a9\n      eq\n      tag_22\n      jumpi\n      dup2\n      0x48b75044\n      eq\n      tag_24\n      jumpi\n      dup2\n      0x8b83209b\n      eq\n      tag_26\n      jumpi\n      pop\n      dup1\n      0x9852595c\n      eq\n      tag_28\n      jumpi\n      dup1\n      0xa3f8eace\n      eq\n      tag_30\n      jumpi\n      dup1\n      0xc45ac050\n      eq\n      tag_32\n      jumpi\n      dup1\n      0xce7c2ac2\n      eq\n      tag_34\n      jumpi\n      dup1\n      0xd79779b2\n      eq\n      tag_36\n      jumpi\n      0xe33b7de3\n      sub\n      tag_14\n      jumpi\n      swap1\n      jumpi(tag_42, callvalue)\n      dup2\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":2502:2516  _totalReleased */\n      0x01\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_42:\n      pop\n      dup1\n      revert\n    tag_36:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_48\n      tag_1\n      jump\t// in\n    tag_48:\n      and\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2758:2777  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_34:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_53\n      tag_1\n      jump\t// in\n    tag_53:\n      and\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2957:2964  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_32:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap1\n      tag_58\n      tag_59\n      tag_1\n      jump\t// in\n    tag_59:\n      tag_60\n      tag_2\n      jump\t// in\n    tag_60:\n      swap1\n      tag_7\n      jump\t// in\n    tag_58:\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_30:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap1\n      tag_58\n      tag_66\n      tag_1\n      jump\t// in\n    tag_66:\n      tag_5\n      jump\t// in\n    tag_28:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_71\n      tag_1\n      jump\t// in\n    tag_71:\n      and\n      dup2\n      mstore\n      0x03\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_26:\n      dup4\n      dup4\n      jumpi(tag_74, callvalue)\n      jumpi(tag_74, slt(add(not(0x03), calldatasize), 0x20))\n      dup3\n      calldataload\n      swap1\n      dup4\n      sload\n      dup3\n      lt\n      iszero\n      tag_76\n      jumpi\n      swap3\n      0x20\n      swap4\n      mstore\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap1\n      0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b\n      add\n      sload\n      and\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_76:\n      shl(0xe0, 0x4e487b71)\n      dup2\n      mstore\n      0x32\n      dup5\n      mstore\n      0x24\n      swap1\n      revert\n    tag_74:\n      dup1\n      revert\n    tag_24:\n      swap1\n      pop\n      jumpi(tag_42, callvalue)\n      dup3\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      tag_82\n      tag_1\n      jump\t// in\n    tag_82:\n      tag_83\n      tag_2\n      jump\t// in\n    tag_83:\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap3\n      dup4\n      dup3\n      and\n      swap4\n      dup5\n      dup7\n      mstore\n      0x20\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":5570:5577  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":5562:5633  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_84\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup9\n      dup9\n      keccak256\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":5570:5590  _shares[account] > 0 */\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":5562:5633  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_8\n      jump\t// in\n    tag_84:\n        /* \"contracts/TokenPaymentSplitter.sol\":5662:5688  releasable(token, account) */\n      tag_85\n      dup5\n      dup7\n      tag_7\n      jump\t// in\n    tag_85:\n        /* \"contracts/TokenPaymentSplitter.sol\":5707:5719  payment != 0 */\n      swap5\n        /* \"contracts/TokenPaymentSplitter.sol\":5699:5767  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_86\n        /* \"contracts/TokenPaymentSplitter.sol\":5707:5719  payment != 0 */\n      dup7\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":5699:5767  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_9\n      jump\t// in\n    tag_86:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      and\n      swap5\n      dup6\n      dup8\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6036  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      mstore\n      dup8\n      dup8\n      keccak256\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6054  _erc20TotalReleased[token] += payment */\n      tag_87\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup7\n      dup3\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6054  _erc20TotalReleased[token] += payment */\n      tag_4\n      jump\t// in\n    tag_87:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap1\n      sstore\n      dup6\n      dup8\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6088:6102  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      mstore\n      dup8\n      dup8\n      keccak256\n      swap1\n      dup8\n      mstore\n      dup2\n      mstore\n      dup7\n      dup7\n      keccak256\n      dup1\n      sload\n      dup6\n      add\n      swap1\n      sstore\n      dup7\n      mload\n      shl(0xe0, 0xa9059cbb)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup2\n      dup4\n      add\n      swap1\n      dup2\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup6\n      and\n      0x24\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup4\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mstore\n      0x44\n      dup1\n      dup4\n      add\n      dup8\n      swap1\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3510:3565  verifyCallResultFromTarget(target, success, returndata) */\n      tag_88\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup9\n      swap2\n      dup3\n      swap2\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      tag_89\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x64\n      dup3\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      tag_6\n      jump\t// in\n    tag_89:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3462:3493  target.call{value: value}(data) */\n      mload\n      swap1\n      dup3\n      dup11\n      gas\n      call\n      tag_91\n      tag_10\n      jump\t// in\n    tag_91:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3510:3565  verifyCallResultFromTarget(target, success, returndata) */\n      swap1\n      dup8\n      tag_11\n      jump\t// in\n    tag_88:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup1\n      mload\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4573  returndata.length != 0 */\n      swap2\n      dup3\n      iszero\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n      swap2\n      dup3\n      tag_92\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n    tag_93:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4547:4682  if (returndata.length != 0 && !abi.decode(returndata, (bool))) {... */\n      pop\n      pop\n      swap1\n      pop\n      tag_94\n      jumpi\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap4\n      mload\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap5\n      and\n      dup5\n      mstore\n      0x20\n      dup5\n      add\n      mstore\n      swap1\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":6212:6257  ERC20PaymentReleased(token, account, payment) */\n      0x3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x40\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":6212:6257  ERC20PaymentReleased(token, account, payment) */\n      log2\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4547:4682  if (returndata.length != 0 && !abi.decode(returndata, (bool))) {... */\n    tag_94:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup6\n      mload\n      shl(0xe0, 0x5274afe7)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4631:4671  SafeERC20FailedOperation(address(token)) */\n      dup2\n      mstore\n      swap1\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup5\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4631:4671  SafeERC20FailedOperation(address(token)) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n    tag_92:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4578:4608  abi.decode(returndata, (bool)) */\n      dup1\n      swap3\n      pop\n      dup2\n      swap4\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      sub\n      slt\n      tag_97\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4578:4608  abi.decode(returndata, (bool)) */\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mload\n      dup1\n      iszero\n      swap1\n      dup2\n      iszero\n      sub\n      tag_99\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n      dup1\n      0x00\n      dup1\n      jump(tag_93)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n    tag_99:\n      dup6\n      dup1\n      revert\n    tag_97:\n      dup7\n      dup1\n      revert\n    tag_22:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      dup1\n      0x20\n      swap3\n      tag_105\n      tag_1\n      jump\t// in\n    tag_105:\n      tag_106\n      tag_2\n      jump\t// in\n    tag_106:\n      sub(shl(0xa0, 0x01), 0x01)\n      swap2\n      dup3\n      and\n      dup4\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3440:3454  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup7\n      mstore\n      dup4\n      dup4\n      keccak256\n      swap2\n      and\n      dup3\n      mstore\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_20:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      dup2\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap2\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_18:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      dup3\n      calldataload\n      sub(shl(0xa0, 0x01), 0x01)\n      dup2\n      and\n      swap1\n      dup2\n      swap1\n      sub\n      tag_115\n      jumpi\n      dup1\n      dup4\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4648:4655  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x20\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4640:4711  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_117\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      dup5\n      keccak256\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":4648:4668  _shares[account] > 0 */\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":4640:4711  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_8\n      jump\t// in\n    tag_117:\n        /* \"contracts/TokenPaymentSplitter.sol\":4740:4759  releasable(account) */\n      tag_118\n      dup2\n      tag_5\n      jump\t// in\n    tag_118:\n        /* \"contracts/TokenPaymentSplitter.sol\":4770:4838  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_119\n        /* \"contracts/TokenPaymentSplitter.sol\":4778:4790  payment != 0 */\n      dup2\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":4770:4838  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_9\n      jump\t// in\n    tag_119:\n        /* \"contracts/TokenPaymentSplitter.sol\":5029:5054  _totalReleased += payment */\n      tag_120\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup2\n      sload(0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":5029:5054  _totalReleased += payment */\n      tag_4\n      jump\t// in\n    tag_120:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x01\n      sstore\n      dup2\n      dup5\n      mstore\n      mstore(0x20, 0x03)\n      dup3\n      dup5\n      keccak256\n      dup2\n      dup2\n      sload\n      add\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1616:1637  address(this).balance */\n      dup1\n      selfbalance\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1616:1646  address(this).balance < amount */\n      lt\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1612:1721  if (address(this).balance < amount) {... */\n      tag_121\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1750:1783  recipient.call{value: amount}(\"\") */\n      dup4\n      dup1\n      dup1\n      dup1\n      dup5\n      dup7\n      gas\n      call\n      tag_123\n      tag_10\n      jump\t// in\n    tag_123:\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1797:1805  !success */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1793:1856  if (!success) {... */\n      tag_124\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":5188:5221  PaymentReleased(account, payment) */\n      0xdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap4\n      swap5\n      pop\n      dup3\n      mload\n      swap2\n      dup3\n      mstore\n      0x20\n      dup3\n      add\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":5188:5221  PaymentReleased(account, payment) */\n      log1\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1793:1856  if (!success) {... */\n    tag_124:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      mload\n      shl(0xe1, 0x0a12f521)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1828:1845  FailedInnerCall() */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup6\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1828:1845  FailedInnerCall() */\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1612:1721  if (address(this).balance < amount) {... */\n    tag_121:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      mload\n      shl(0xe0, 0xcd786059)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1624:1628  this */\n      address\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      dup2\n      dup8\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      revert\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n    tag_115:\n      dup3\n      dup1\n      revert\n    tag_1:\n      calldataload(0x04)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_126\n      jumpi\n      jump\t// out\n    tag_126:\n      0x00\n      dup1\n      revert\n    tag_2:\n      calldataload(0x24)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_126\n      jumpi\n      jump\t// out\n    tag_4:\n      swap2\n      swap1\n      dup3\n      add\n      dup1\n      swap3\n      gt\n      tag_130\n      jumpi\n      jump\t// out\n    tag_130:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x11)\n      revert(0x00, 0x24)\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n    tag_5:\n        /* \"contracts/TokenPaymentSplitter.sol\":3903:3961  _pendingPayment(account, totalReceived, released(account)) */\n      tag_132\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3886  address(this).balance + totalReleased() */\n      tag_133\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3868  address(this).balance */\n      selfbalance\n        /* \"contracts/TokenPaymentSplitter.sol\":2502:2516  _totalReleased */\n      0x01\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3886  address(this).balance + totalReleased() */\n      swap1\n      tag_4\n      jump\t// in\n    tag_133:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3156:3165  _released */\n      0x03\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":3903:3961  _pendingPayment(account, totalReceived, released(account)) */\n      tag_12\n      jump\t// in\n    tag_132:\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n    tag_6:\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      0x1f\n      dup1\n      not\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap2\n      add\n      and\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      0xffffffffffffffff\n      dup3\n      gt\n      or\n      tag_134\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_134:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x41)\n      revert(0x00, 0x24)\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n    tag_7:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mload(0x40)\n      shl(0xe0, 0x70a08231)\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4261:4265  this */\n      address\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      0x04\n      dup3\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mstore\n      swap3\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n      swap2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap1\n      dup2\n      and\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      0x20\n      dup1\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup7\n      0x24\n      dup2\n      dup7\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      gas\n      staticcall\n      swap6\n      dup7\n      iszero\n      tag_136\n      jumpi\n      0x00\n      swap7\n      tag_138\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n    tag_139:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      tag_140\n        /* \"contracts/TokenPaymentSplitter.sol\":4307:4372  _pendingPayment(account, totalReceived, released(token, account)) */\n      tag_132\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap6\n      swap7\n      dup5\n      0x00\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2758:2777  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup4\n      mstore\n      sload(keccak256(0x00, 0x40))\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      swap1\n      tag_4\n      jump\t// in\n    tag_140:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap3\n      0x00\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3440:3454  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup2\n      mstore\n      keccak256(0x00, 0x40)\n      swap2\n      dup5\n      and\n      0x00\n      mstore\n      mstore\n      sload(keccak256(0x00, 0x40))\n        /* \"contracts/TokenPaymentSplitter.sol\":4307:4372  _pendingPayment(account, totalReceived, released(token, account)) */\n      swap2\n      tag_12\n      jump\t// in\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n    tag_138:\n      swap6\n      dup2\n      dup8\n      dup2\n      returndatasize\n      dup4\n      gt\n      tag_142\n      jumpi\n    tag_143:\n      tag_144\n      dup2\n      dup4\n      tag_6\n      jump\t// in\n    tag_144:\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      sub\n      slt\n      tag_74\n      jumpi\n      pop\n      swap5\n      mload\n      swap5\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      tag_140\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      jump(tag_139)\n    tag_142:\n      pop\n      returndatasize\n      jump(tag_143)\n    tag_136:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mload(0x40)\n      returndatasize\n      0x00\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n    tag_8:\n      iszero\n      tag_147\n      jumpi\n      jump\t// out\n    tag_147:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x26\n      0x24\n      dup3\n      add\n      mstore\n      0x5061796d656e7453706c69747465723a206163636f756e7420686173206e6f20\n      0x44\n      dup3\n      add\n      mstore\n      shl(0xd0, 0x736861726573)\n      0x64\n      dup3\n      add\n      mstore\n      0x84\n      swap1\n      revert\n    tag_9:\n      iszero\n      tag_149\n      jumpi\n      jump\t// out\n    tag_149:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x2b\n      0x24\n      dup3\n      add\n      mstore\n      0x5061796d656e7453706c69747465723a206163636f756e74206973206e6f7420\n      0x44\n      dup3\n      add\n      mstore\n      shl(0xaa, 0x191d59481c185e5b595b9d)\n      0x64\n      dup3\n      add\n      mstore\n      0x84\n      swap1\n      revert\n    tag_10:\n      jumpi(tag_151, iszero(returndatasize))\n      returndatasize\n      swap1\n      0xffffffffffffffff\n      dup3\n      gt\n      tag_134\n      jumpi\n      mload(0x40)\n      swap2\n      tag_155\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      0x1f\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup3\n      add\n      not(0x1f)\n      and\n      0x20\n      add\n      dup5\n      tag_6\n      jump\t// in\n    tag_155:\n      dup3\n      mstore\n      returndatasize\n      0x00\n      0x20\n      dup5\n      add\n      returndatacopy\n      jump\t// out\n    tag_151:\n      0x60\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4625:5207  function verifyCallResultFromTarget(... */\n    tag_11:\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4797:4805  !success */\n      tag_157\n      jumpi\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup1\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5874:5895  returndata.length > 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5874:5891  returndata.length */\n      tag_159\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":6046:6188  assembly {... */\n      dup1\n      mload\n      swap1\n      0x20\n      add\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5870:6253  if (returndata.length > 0) {... */\n    tag_159:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mload(0x40)\n      shl(0xe1, 0x0a12f521)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":6225:6242  FailedInnerCall() */\n      dup2\n      mstore\n      0x04\n      swap1\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4793:5201  if (!success) {... */\n    tag_157:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      dup2\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5067  returndata.length == 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n      dup1\n      tag_161\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4793:5201  if (!success) {... */\n    tag_162:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5041:5160  if (returndata.length == 0 && target.code.length == 0) {... */\n      tag_163\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5173:5190  return returndata */\n      pop\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5041:5160  if (returndata.length == 0 && target.code.length == 0) {... */\n    tag_163:\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mload(0x40)\n      shl(0xe0, 0x9996b315)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      dup2\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      swap1\n      swap2\n      and\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      0x04\n      dup3\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n    tag_161:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5071:5089  target.code.length */\n      pop\n      dup1\n      extcodesize\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5071:5094  target.code.length == 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n      jump(tag_162)\n        /* \"contracts/TokenPaymentSplitter.sol\":6436:6678  function _pendingPayment(... */\n    tag_12:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6621:6628  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n      0x20\n      mstore\n      0x40\n      dup2\n      keccak256\n      sload\n      swap1\n      swap2\n      dup2\n      dup2\n      mul\n      swap2\n      dup2\n      iszero\n      swap2\n      dup4\n      div\n      eq\n      or\n      iszero\n      tag_165\n      jumpi\n      dup2\n      sload\n      swap1\n      dup2\n      iszero\n      tag_167\n      jumpi\n      div\n      swap2\n      dup3\n      sub\n      swap2\n      dup3\n      gt\n      tag_169\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":6597:6671  return (totalReceived * _shares[account]) / _totalShares - alreadyReleased */\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":6436:6678  function _pendingPayment(... */\n      swap1\n      jump\t// out\n        /* \"contracts/TokenPaymentSplitter.sol\":229:7329  contract PaymentSplitter is Context {... */\n    tag_169:\n      shl(0xe0, 0x4e487b71)\n      dup2\n      mstore\n      mstore(0x04, 0x11)\n      0x24\n      swap1\n      revert\n    tag_167:\n      shl(0xe0, 0x4e487b71)\n      dup4\n      mstore\n      mstore(0x04, 0x12)\n      0x24\n      dup4\n      revert\n    tag_165:\n      shl(0xe0, 0x4e487b71)\n      dup3\n      mstore\n      mstore(0x04, 0x11)\n      0x24\n      dup3\n      revert\n\n    auxdata: 0xa2646970667358221220c73c81f366e751ea1b8523718e4c7e3b61f85b108925cdcda31508b5b6d6349864736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"allocate_memory": {
									"entryPoint": 1027,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"array_allocation_size_array_address_dyn": {
									"entryPoint": 1085,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"memory_array_index_access_address_dyn": {
									"entryPoint": 1109,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								}
							},
							"generatedSources": [],
							"linkReferences": {},
							"object": "60406080815262000d1880380380620000188162000403565b9283398101918082840312620003de5781516001600160401b039390848111620003de5783019381601f86011215620003de57845193620000636200005d866200043d565b62000403565b9586958088526020808099019160051b83010191858311620003de578801905b828210620003e25750505085810151918211620003de57019080601f83011215620003de57815191620000ba6200005d846200043d565b92868085838152019160051b830101928311620003de5786809201905b838210620003ce575050505082518151036200036f578251156200032b575f5b83518110156200031c576001600160a01b0362000115828662000455565b511662000123828462000455565b518115620002c35780156200027f57815f526002808852855f205462000227576004908154680100000000000000008110156200021457600181018084558110156200020157825f52895f20018460018060a01b0319825416179055835f52885281865f20555f5490828201809211620001ee57505f558451918252868201527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac908490a15f198114620001da57600101620000f7565b634e487b7160e01b5f52601160045260245ffd5b601190634e487b7160e01b5f525260245ffd5b603283634e487b7160e01b5f525260245ffd5b604183634e487b7160e01b5f525260245ffd5b855162461bcd60e51b815260048101899052602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608490fd5b845162461bcd60e51b815260048101889052601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606490fd5b845162461bcd60e51b815260048101889052602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608490fd5b825161089990816200047f8239f35b815162461bcd60e51b815260048101859052601a60248201527f5061796d656e7453706c69747465723a206e6f207061796565730000000000006044820152606490fd5b815162461bcd60e51b815260048101859052603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b6064820152608490fd5b81518152908201908201620000d7565b5f80fd5b81516001600160a01b0381168103620003de57815290880190880162000083565b6040519190601f01601f191682016001600160401b038111838210176200042957604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b038111620004295760051b60200190565b80518210156200046a5760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfe60406080815260048036101561004d575b50361561001b575f80fd5b513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77090604090a1005b5f90813560e01c90816319165587146104395781633a98ef391461041c578163406072a9146103d357816348b75044146102605781638b83209b146101f3575080639852595c146101bb578063a3f8eace14610195578063c45ac05014610160578063ce7c2ac214610128578063d79779b2146100f05763e33b7de3036100105790346100ec57816003193601126100ec576020906001549051908152f35b5080fd5b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610118610523565b1681526005845220549051908152f35b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610150610523565b1681526002845220549051908152f35b5090346100ec57806003193601126100ec5760209061018e610180610523565b61018861053d565b906105dc565b9051908152f35b5090346100ec5760203660031901126100ec5760209061018e6101b6610523565b610574565b5090346100ec5760203660031901126100ec5760209181906001600160a01b036101e3610523565b1681526003845220549051908152f35b83833461025d57602036600319011261025d57823590835482101561024a57926020935260018060a01b03907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154169051908152f35b634e487b7160e01b815260328452602490fd5b80fd5b9050346100ec57826003193601126100ec5761027a610523565b61028261053d565b60018060a01b039283821693848652602090600282526102a6888820541515610689565b6102b084866105dc565b946102bc8615156106e4565b1694858752600582528787206102d3868254610553565b9055858752600682528787209087528152868620805485019055865163a9059cbb60e01b8183019081526001600160a01b03851660248301526044808301879052825261033e91889182916103296064826105a6565b5190828a5af1610337610744565b9087610783565b80519182151591826103aa575b50509050610393575093516001600160a01b039094168452602084015290917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a90604090a280f35b8551635274afe760e01b8152908101849052602490fd5b8092508193810103126103cf5701518015908115036103cb57805f8061034b565b8580fd5b8680fd5b8284346100ec57806003193601126100ec57806020926103f1610523565b6103f961053d565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b8284346100ec57816003193601126100ec57602091549051908152f35b8284346100ec5760203660031901126100ec5782356001600160a01b0381169081900361051f578083526002602052610476828420541515610689565b61047f81610574565b61048a8115156106e4565b61049681600154610553565b6001558184526003602052828420818154019055804710610509578380808084865af16104c1610744565b50156104f9577fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05693945082519182526020820152a180f35b8251630a12f52160e11b81528590fd5b825163cd78605960e01b81523081870152602490fd5b8280fd5b600435906001600160a01b038216820361053957565b5f80fd5b602435906001600160a01b038216820361053957565b9190820180921161056057565b634e487b7160e01b5f52601160045260245ffd5b6105a3906105854760015490610553565b6001600160a01b0382165f90815260036020526040902054916107e6565b90565b90601f8019910116810190811067ffffffffffffffff8211176105c857604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201529291906001600160a01b039081169060208086602481865afa95861561067e575f9661064d575b506106316105a39596845f526005835260405f205490610553565b925f526006815260405f209184165f525260405f2054916107e6565b958187813d8311610677575b61066381836105a6565b8101031261025d5750945194610631610616565b503d610659565b6040513d5f823e3d90fd5b1561069057565b60405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608490fd5b156106eb57565b60405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608490fd5b3d1561077e573d9067ffffffffffffffff82116105c85760405191610773601f8201601f1916602001846105a6565b82523d5f602084013e565b606090565b906107aa575080511561079857805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806107dd575b6107bb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156107b3565b6001600160a01b03165f90815260026020526040812054909181810291811591830414171561084f57815490811561083b5704918203918211610827575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fdfea2646970667358221220c73c81f366e751ea1b8523718e4c7e3b61f85b108925cdcda31508b5b6d6349864736f6c63430008140033",
							"opcodes": "PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH3 0xD18 DUP1 CODESIZE SUB DUP1 PUSH3 0x18 DUP2 PUSH3 0x403 JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP2 DUP1 DUP3 DUP5 SUB SLT PUSH3 0x3DE JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP4 SWAP1 DUP5 DUP2 GT PUSH3 0x3DE JUMPI DUP4 ADD SWAP4 DUP2 PUSH1 0x1F DUP7 ADD SLT ISZERO PUSH3 0x3DE JUMPI DUP5 MLOAD SWAP4 PUSH3 0x63 PUSH3 0x5D DUP7 PUSH3 0x43D JUMP JUMPDEST PUSH3 0x403 JUMP JUMPDEST SWAP6 DUP7 SWAP6 DUP1 DUP9 MSTORE PUSH1 0x20 DUP1 DUP1 SWAP10 ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP2 DUP6 DUP4 GT PUSH3 0x3DE JUMPI DUP9 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH3 0x3E2 JUMPI POP POP POP DUP6 DUP2 ADD MLOAD SWAP2 DUP3 GT PUSH3 0x3DE JUMPI ADD SWAP1 DUP1 PUSH1 0x1F DUP4 ADD SLT ISZERO PUSH3 0x3DE JUMPI DUP2 MLOAD SWAP2 PUSH3 0xBA PUSH3 0x5D DUP5 PUSH3 0x43D JUMP JUMPDEST SWAP3 DUP7 DUP1 DUP6 DUP4 DUP2 MSTORE ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP3 DUP4 GT PUSH3 0x3DE JUMPI DUP7 DUP1 SWAP3 ADD SWAP1 JUMPDEST DUP4 DUP3 LT PUSH3 0x3CE JUMPI POP POP POP POP DUP3 MLOAD DUP2 MLOAD SUB PUSH3 0x36F JUMPI DUP3 MLOAD ISZERO PUSH3 0x32B JUMPI PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH3 0x31C JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x115 DUP3 DUP7 PUSH3 0x455 JUMP JUMPDEST MLOAD AND PUSH3 0x123 DUP3 DUP5 PUSH3 0x455 JUMP JUMPDEST MLOAD DUP2 ISZERO PUSH3 0x2C3 JUMPI DUP1 ISZERO PUSH3 0x27F JUMPI DUP2 PUSH0 MSTORE PUSH1 0x2 DUP1 DUP9 MSTORE DUP6 PUSH0 KECCAK256 SLOAD PUSH3 0x227 JUMPI PUSH1 0x4 SWAP1 DUP2 SLOAD PUSH9 0x10000000000000000 DUP2 LT ISZERO PUSH3 0x214 JUMPI PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE DUP2 LT ISZERO PUSH3 0x201 JUMPI DUP3 PUSH0 MSTORE DUP10 PUSH0 KECCAK256 ADD DUP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE DUP4 PUSH0 MSTORE DUP9 MSTORE DUP2 DUP7 PUSH0 KECCAK256 SSTORE PUSH0 SLOAD SWAP1 DUP3 DUP3 ADD DUP1 SWAP3 GT PUSH3 0x1EE JUMPI POP PUSH0 SSTORE DUP5 MLOAD SWAP2 DUP3 MSTORE DUP7 DUP3 ADD MSTORE PUSH32 0x40C340F65E17194D14DDDDB073D3C9F888E3CB52B5AAE0C6C7706B4FBC905FAC SWAP1 DUP5 SWAP1 LOG1 PUSH0 NOT DUP2 EQ PUSH3 0x1DA JUMPI PUSH1 0x1 ADD PUSH3 0xF7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x11 SWAP1 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x32 DUP4 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x41 DUP4 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP6 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420616C7265616479 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x2068617320736861726573 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A20736861726573206172652030000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E742069732074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7A65726F2061646472657373 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x899 SWAP1 DUP2 PUSH3 0x47F DUP3 CODECOPY RETURN JUMPDEST DUP2 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206E6F20706179656573000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A2070617965657320616E642073686172 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0xCAE640D8CADCCEE8D040DAD2E6DAC2E8C6D PUSH1 0x73 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP2 MLOAD DUP2 MSTORE SWAP1 DUP3 ADD SWAP1 DUP3 ADD PUSH3 0xD7 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH3 0x3DE JUMPI DUP2 MSTORE SWAP1 DUP9 ADD SWAP1 DUP9 ADD PUSH3 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x429 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x429 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH3 0x46A JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x4D JUMPI JUMPDEST POP CALLDATASIZE ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST MLOAD CALLER DUP2 MSTORE CALLVALUE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770 SWAP1 PUSH1 0x40 SWAP1 LOG1 STOP JUMPDEST PUSH0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x19165587 EQ PUSH2 0x439 JUMPI DUP2 PUSH4 0x3A98EF39 EQ PUSH2 0x41C JUMPI DUP2 PUSH4 0x406072A9 EQ PUSH2 0x3D3 JUMPI DUP2 PUSH4 0x48B75044 EQ PUSH2 0x260 JUMPI DUP2 PUSH4 0x8B83209B EQ PUSH2 0x1F3 JUMPI POP DUP1 PUSH4 0x9852595C EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xA3F8EACE EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0xC45AC050 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xCE7C2AC2 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD79779B2 EQ PUSH2 0xF0 JUMPI PUSH4 0xE33B7DE3 SUB PUSH2 0x10 JUMPI SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH1 0x1 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x118 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x150 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x2 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x180 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x53D JUMP JUMPDEST SWAP1 PUSH2 0x5DC JUMP JUMPDEST SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x1B6 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1E3 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x3 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0x25D JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x25D JUMPI DUP3 CALLDATALOAD SWAP1 DUP4 SLOAD DUP3 LT ISZERO PUSH2 0x24A JUMPI SWAP3 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x32 DUP5 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST SWAP1 POP CALLVALUE PUSH2 0xEC JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH2 0x27A PUSH2 0x523 JUMP JUMPDEST PUSH2 0x282 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 DUP3 AND SWAP4 DUP5 DUP7 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x2 DUP3 MSTORE PUSH2 0x2A6 DUP9 DUP9 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x2B0 DUP5 DUP7 PUSH2 0x5DC JUMP JUMPDEST SWAP5 PUSH2 0x2BC DUP7 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST AND SWAP5 DUP6 DUP8 MSTORE PUSH1 0x5 DUP3 MSTORE DUP8 DUP8 KECCAK256 PUSH2 0x2D3 DUP7 DUP3 SLOAD PUSH2 0x553 JUMP JUMPDEST SWAP1 SSTORE DUP6 DUP8 MSTORE PUSH1 0x6 DUP3 MSTORE DUP8 DUP8 KECCAK256 SWAP1 DUP8 MSTORE DUP2 MSTORE DUP7 DUP7 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE DUP7 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP8 SWAP1 MSTORE DUP3 MSTORE PUSH2 0x33E SWAP2 DUP9 SWAP2 DUP3 SWAP2 PUSH2 0x329 PUSH1 0x64 DUP3 PUSH2 0x5A6 JUMP JUMPDEST MLOAD SWAP1 DUP3 DUP11 GAS CALL PUSH2 0x337 PUSH2 0x744 JUMP JUMPDEST SWAP1 DUP8 PUSH2 0x783 JUMP JUMPDEST DUP1 MLOAD SWAP2 DUP3 ISZERO ISZERO SWAP2 DUP3 PUSH2 0x3AA JUMPI JUMPDEST POP POP SWAP1 POP PUSH2 0x393 JUMPI POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A SWAP1 PUSH1 0x40 SWAP1 LOG2 DUP1 RETURN JUMPDEST DUP6 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 DUP2 ADD SUB SLT PUSH2 0x3CF JUMPI ADD MLOAD DUP1 ISZERO SWAP1 DUP2 ISZERO SUB PUSH2 0x3CB JUMPI DUP1 PUSH0 DUP1 PUSH2 0x34B JUMP JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0x3F1 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x6 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x51F JUMPI DUP1 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH2 0x476 DUP3 DUP5 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x48A DUP2 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x496 DUP2 PUSH1 0x1 SLOAD PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 SSTORE DUP2 DUP5 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE DUP3 DUP5 KECCAK256 DUP2 DUP2 SLOAD ADD SWAP1 SSTORE DUP1 SELFBALANCE LT PUSH2 0x509 JUMPI DUP4 DUP1 DUP1 DUP1 DUP5 DUP7 GAS CALL PUSH2 0x4C1 PUSH2 0x744 JUMP JUMPDEST POP ISZERO PUSH2 0x4F9 JUMPI PUSH32 0xDF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056 SWAP4 SWAP5 POP DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 DUP1 RETURN JUMPDEST DUP3 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE DUP6 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH4 0xCD786059 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS DUP2 DUP8 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x560 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x5A3 SWAP1 PUSH2 0x585 SELFBALANCE PUSH1 0x1 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x5C8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 PUSH1 0x20 DUP1 DUP7 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP6 DUP7 ISZERO PUSH2 0x67E JUMPI PUSH0 SWAP7 PUSH2 0x64D JUMPI JUMPDEST POP PUSH2 0x631 PUSH2 0x5A3 SWAP6 SWAP7 DUP5 PUSH0 MSTORE PUSH1 0x5 DUP4 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST SWAP3 PUSH0 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 DUP5 AND PUSH0 MSTORE MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP6 DUP2 DUP8 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x677 JUMPI JUMPDEST PUSH2 0x663 DUP2 DUP4 PUSH2 0x5A6 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x25D JUMPI POP SWAP5 MLOAD SWAP5 PUSH2 0x631 PUSH2 0x616 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x690 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x736861726573 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x6EB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x191D59481C185E5B595B9D PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x77E JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x773 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x5A6 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x7AA JUMPI POP DUP1 MLOAD ISZERO PUSH2 0x798 JUMPI DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP2 MLOAD ISZERO DUP1 PUSH2 0x7DD JUMPI JUMPDEST PUSH2 0x7BB JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP DUP1 EXTCODESIZE ISZERO PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 DUP2 MUL SWAP2 DUP2 ISZERO SWAP2 DUP4 DIV EQ OR ISZERO PUSH2 0x84F JUMPI DUP2 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x83B JUMPI DIV SWAP2 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x827 JUMPI POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC7 EXTCODECOPY DUP2 RETURN PUSH7 0xE751EA1B852371 DUP15 0x4C PUSH31 0x3B61F85B108925CDCDA31508B5B6D6349864736F6C63430008140033000000 ",
							"sourceMap": "229:7100:27:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1295:31;229:7100;;;;1399:17;229:7100;;-1:-1:-1;1497:3:27;229:7100;;1478:17;;;;;-1:-1:-1;;;;;1526:9:27;;;;:::i;:::-;229:7100;;1537:10;;;;:::i;:::-;229:7100;6942:21;;229:7100;;7030:11;;229:7100;;;-1:-1:-1;229:7100:27;7093:7;229:7100;;;;-1:-1:-1;229:7100:27;;;;7173:7;229:7100;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;229:7100:27;;-1:-1:-1;229:7100:27;;;;;;;;;;;;;;;;-1:-1:-1;229:7100:27;;;;;-1:-1:-1;229:7100:27;;-1:-1:-1;229:7100:27;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;;;7292:28;;229:7100;;7292:28;-1:-1:-1;;229:7100:27;;;;;;1463:13;;229:7100;;;;-1:-1:-1;229:7100:27;;7173:7;229:7100;;-1:-1:-1;229:7100:27;;;;;;;-1:-1:-1;229:7100:27;;;-1:-1:-1;229:7100:27;;;;;;;-1:-1:-1;229:7100:27;;;-1:-1:-1;229:7100:27;;;;;;;-1:-1:-1;229:7100:27;;;-1:-1:-1;229:7100:27;;;;-1:-1:-1;;;229:7100:27;;7173:7;229:7100;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;-1:-1:-1;;;229:7100:27;;7173:7;229:7100;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;7173:7;229:7100;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;1478:17;;229:7100;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;229:7100:27;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"abi_decode_address": {
									"entryPoint": 1341,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_decode_contract_IERC20": {
									"entryPoint": 1315,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_encode_address_uint256": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"checked_add_uint256": {
									"entryPoint": 1363,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"extract_returndata": {
									"entryPoint": 1860,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"finalize_allocation": {
									"entryPoint": 1446,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"fun_pendingPayment": {
									"entryPoint": 2022,
									"id": 11568,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"fun_releasable": {
									"entryPoint": 1500,
									"id": 11430,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_releasable_11395": {
									"entryPoint": 1396,
									"id": 11395,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_verifyCallResultFromTarget": {
									"entryPoint": 1923,
									"id": 2771,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"require_helper_stringliteral": {
									"entryPoint": 1673,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"require_helper_stringliteral_57f8": {
									"entryPoint": 1764,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								}
							},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "60406080815260048036101561004d575b50361561001b575f80fd5b513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77090604090a1005b5f90813560e01c90816319165587146104395781633a98ef391461041c578163406072a9146103d357816348b75044146102605781638b83209b146101f3575080639852595c146101bb578063a3f8eace14610195578063c45ac05014610160578063ce7c2ac214610128578063d79779b2146100f05763e33b7de3036100105790346100ec57816003193601126100ec576020906001549051908152f35b5080fd5b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610118610523565b1681526005845220549051908152f35b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610150610523565b1681526002845220549051908152f35b5090346100ec57806003193601126100ec5760209061018e610180610523565b61018861053d565b906105dc565b9051908152f35b5090346100ec5760203660031901126100ec5760209061018e6101b6610523565b610574565b5090346100ec5760203660031901126100ec5760209181906001600160a01b036101e3610523565b1681526003845220549051908152f35b83833461025d57602036600319011261025d57823590835482101561024a57926020935260018060a01b03907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154169051908152f35b634e487b7160e01b815260328452602490fd5b80fd5b9050346100ec57826003193601126100ec5761027a610523565b61028261053d565b60018060a01b039283821693848652602090600282526102a6888820541515610689565b6102b084866105dc565b946102bc8615156106e4565b1694858752600582528787206102d3868254610553565b9055858752600682528787209087528152868620805485019055865163a9059cbb60e01b8183019081526001600160a01b03851660248301526044808301879052825261033e91889182916103296064826105a6565b5190828a5af1610337610744565b9087610783565b80519182151591826103aa575b50509050610393575093516001600160a01b039094168452602084015290917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a90604090a280f35b8551635274afe760e01b8152908101849052602490fd5b8092508193810103126103cf5701518015908115036103cb57805f8061034b565b8580fd5b8680fd5b8284346100ec57806003193601126100ec57806020926103f1610523565b6103f961053d565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b8284346100ec57816003193601126100ec57602091549051908152f35b8284346100ec5760203660031901126100ec5782356001600160a01b0381169081900361051f578083526002602052610476828420541515610689565b61047f81610574565b61048a8115156106e4565b61049681600154610553565b6001558184526003602052828420818154019055804710610509578380808084865af16104c1610744565b50156104f9577fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05693945082519182526020820152a180f35b8251630a12f52160e11b81528590fd5b825163cd78605960e01b81523081870152602490fd5b8280fd5b600435906001600160a01b038216820361053957565b5f80fd5b602435906001600160a01b038216820361053957565b9190820180921161056057565b634e487b7160e01b5f52601160045260245ffd5b6105a3906105854760015490610553565b6001600160a01b0382165f90815260036020526040902054916107e6565b90565b90601f8019910116810190811067ffffffffffffffff8211176105c857604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201529291906001600160a01b039081169060208086602481865afa95861561067e575f9661064d575b506106316105a39596845f526005835260405f205490610553565b925f526006815260405f209184165f525260405f2054916107e6565b958187813d8311610677575b61066381836105a6565b8101031261025d5750945194610631610616565b503d610659565b6040513d5f823e3d90fd5b1561069057565b60405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608490fd5b156106eb57565b60405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608490fd5b3d1561077e573d9067ffffffffffffffff82116105c85760405191610773601f8201601f1916602001846105a6565b82523d5f602084013e565b606090565b906107aa575080511561079857805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806107dd575b6107bb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156107b3565b6001600160a01b03165f90815260026020526040812054909181810291811591830414171561084f57815490811561083b5704918203918211610827575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fdfea2646970667358221220c73c81f366e751ea1b8523718e4c7e3b61f85b108925cdcda31508b5b6d6349864736f6c63430008140033",
							"opcodes": "PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x4D JUMPI JUMPDEST POP CALLDATASIZE ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST MLOAD CALLER DUP2 MSTORE CALLVALUE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770 SWAP1 PUSH1 0x40 SWAP1 LOG1 STOP JUMPDEST PUSH0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x19165587 EQ PUSH2 0x439 JUMPI DUP2 PUSH4 0x3A98EF39 EQ PUSH2 0x41C JUMPI DUP2 PUSH4 0x406072A9 EQ PUSH2 0x3D3 JUMPI DUP2 PUSH4 0x48B75044 EQ PUSH2 0x260 JUMPI DUP2 PUSH4 0x8B83209B EQ PUSH2 0x1F3 JUMPI POP DUP1 PUSH4 0x9852595C EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xA3F8EACE EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0xC45AC050 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xCE7C2AC2 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD79779B2 EQ PUSH2 0xF0 JUMPI PUSH4 0xE33B7DE3 SUB PUSH2 0x10 JUMPI SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH1 0x1 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x118 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x150 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x2 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x180 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x53D JUMP JUMPDEST SWAP1 PUSH2 0x5DC JUMP JUMPDEST SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x1B6 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1E3 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x3 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0x25D JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x25D JUMPI DUP3 CALLDATALOAD SWAP1 DUP4 SLOAD DUP3 LT ISZERO PUSH2 0x24A JUMPI SWAP3 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x32 DUP5 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST SWAP1 POP CALLVALUE PUSH2 0xEC JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH2 0x27A PUSH2 0x523 JUMP JUMPDEST PUSH2 0x282 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 DUP3 AND SWAP4 DUP5 DUP7 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x2 DUP3 MSTORE PUSH2 0x2A6 DUP9 DUP9 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x2B0 DUP5 DUP7 PUSH2 0x5DC JUMP JUMPDEST SWAP5 PUSH2 0x2BC DUP7 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST AND SWAP5 DUP6 DUP8 MSTORE PUSH1 0x5 DUP3 MSTORE DUP8 DUP8 KECCAK256 PUSH2 0x2D3 DUP7 DUP3 SLOAD PUSH2 0x553 JUMP JUMPDEST SWAP1 SSTORE DUP6 DUP8 MSTORE PUSH1 0x6 DUP3 MSTORE DUP8 DUP8 KECCAK256 SWAP1 DUP8 MSTORE DUP2 MSTORE DUP7 DUP7 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE DUP7 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP8 SWAP1 MSTORE DUP3 MSTORE PUSH2 0x33E SWAP2 DUP9 SWAP2 DUP3 SWAP2 PUSH2 0x329 PUSH1 0x64 DUP3 PUSH2 0x5A6 JUMP JUMPDEST MLOAD SWAP1 DUP3 DUP11 GAS CALL PUSH2 0x337 PUSH2 0x744 JUMP JUMPDEST SWAP1 DUP8 PUSH2 0x783 JUMP JUMPDEST DUP1 MLOAD SWAP2 DUP3 ISZERO ISZERO SWAP2 DUP3 PUSH2 0x3AA JUMPI JUMPDEST POP POP SWAP1 POP PUSH2 0x393 JUMPI POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A SWAP1 PUSH1 0x40 SWAP1 LOG2 DUP1 RETURN JUMPDEST DUP6 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 DUP2 ADD SUB SLT PUSH2 0x3CF JUMPI ADD MLOAD DUP1 ISZERO SWAP1 DUP2 ISZERO SUB PUSH2 0x3CB JUMPI DUP1 PUSH0 DUP1 PUSH2 0x34B JUMP JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0x3F1 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x6 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x51F JUMPI DUP1 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH2 0x476 DUP3 DUP5 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x48A DUP2 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x496 DUP2 PUSH1 0x1 SLOAD PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 SSTORE DUP2 DUP5 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE DUP3 DUP5 KECCAK256 DUP2 DUP2 SLOAD ADD SWAP1 SSTORE DUP1 SELFBALANCE LT PUSH2 0x509 JUMPI DUP4 DUP1 DUP1 DUP1 DUP5 DUP7 GAS CALL PUSH2 0x4C1 PUSH2 0x744 JUMP JUMPDEST POP ISZERO PUSH2 0x4F9 JUMPI PUSH32 0xDF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056 SWAP4 SWAP5 POP DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 DUP1 RETURN JUMPDEST DUP3 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE DUP6 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH4 0xCD786059 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS DUP2 DUP8 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x560 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x5A3 SWAP1 PUSH2 0x585 SELFBALANCE PUSH1 0x1 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x5C8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 PUSH1 0x20 DUP1 DUP7 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP6 DUP7 ISZERO PUSH2 0x67E JUMPI PUSH0 SWAP7 PUSH2 0x64D JUMPI JUMPDEST POP PUSH2 0x631 PUSH2 0x5A3 SWAP6 SWAP7 DUP5 PUSH0 MSTORE PUSH1 0x5 DUP4 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST SWAP3 PUSH0 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 DUP5 AND PUSH0 MSTORE MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP6 DUP2 DUP8 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x677 JUMPI JUMPDEST PUSH2 0x663 DUP2 DUP4 PUSH2 0x5A6 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x25D JUMPI POP SWAP5 MLOAD SWAP5 PUSH2 0x631 PUSH2 0x616 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x690 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x736861726573 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x6EB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x191D59481C185E5B595B9D PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x77E JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x773 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x5A6 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x7AA JUMPI POP DUP1 MLOAD ISZERO PUSH2 0x798 JUMPI DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP2 MLOAD ISZERO DUP1 PUSH2 0x7DD JUMPI JUMPDEST PUSH2 0x7BB JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP DUP1 EXTCODESIZE ISZERO PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 DUP2 MUL SWAP2 DUP2 ISZERO SWAP2 DUP4 DIV EQ OR ISZERO PUSH2 0x84F JUMPI DUP2 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x83B JUMPI DIV SWAP2 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x827 JUMPI POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC7 EXTCODECOPY DUP2 RETURN PUSH7 0xE751EA1B852371 DUP15 0x4C PUSH31 0x3B61F85B108925CDCDA31508B5B6D6349864736F6C63430008140033000000 ",
							"sourceMap": "229:7100:27:-:0;;;;;;;;;;;-1:-1:-1;229:7100:27;;;;;;;;;;735:10:16;229:7100:27;;2157:9;229:7100;;;;2127:40;;229:7100;;2127:40;229:7100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2502:14;229:7100;;;;;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;-1:-1:-1;;;;;229:7100:27;;:::i;:::-;;;;2758:19;229:7100;;;;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;-1:-1:-1;;;;;229:7100:27;;:::i;:::-;;;;2957:7;229:7100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;-1:-1:-1;;;;;229:7100:27;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;5570:7;229:7100;;5562:71;229:7100;;;;5570:20;;5562:71;:::i;:::-;5662:26;;;;:::i;:::-;5707:12;5699:68;5707:12;;;5699:68;:::i;:::-;229:7100;;;;;6017:19;229:7100;;;;;6017:37;229:7100;;;6017:37;:::i;:::-;229:7100;;;;;6088:14;229:7100;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1412:43:8;;;;;;-1:-1:-1;;;;;229:7100:27;;;1412:43:8;;229:7100:27;;;;;;;;1412:43:8;;3510:55:14;;229:7100:27;;;;1412:43:8;229:7100:27;;1412:43:8;:::i;:::-;3462:31:14;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;229:7100:27;;4551:22:8;;;;:57;;;;229:7100:27;4547:135:8;;;;;;-1:-1:-1;229:7100:27;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;;;6212:45;;229:7100;;6212:45;229:7100;;4547:135:8;229:7100:27;;-1:-1:-1;;;4631:40:8;;;;;229:7100:27;;;;;4631:40:8;4551:57;4578:30;;;;;;;229:7100:27;;;;4578:30:8;229:7100:27;;;;;;;;;4551:57:8;;;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;229:7100:27;;;;;3440:14;229:7100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;229:7100:27;;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;;;;;;4648:7;229:7100;;4640:71;229:7100;;;;4648:20;;4640:71;:::i;:::-;4740:19;;;:::i;:::-;4770:68;4778:12;;;4770:68;:::i;:::-;5029:25;229:7100;;;5029:25;:::i;:::-;229:7100;;;;;;;;;;;;;;;;;1616:21:14;;:30;1612:109;;1750:33;;;;;;;;;;:::i;:::-;;1797:8;1793:63;;5188:33:27;229:7100;;;;;;;;;;;;5188:33;229:7100;;1793:63:14;229:7100:27;;-1:-1:-1;;;1828:17:14;;229:7100:27;;1828:17:14;1612:109;229:7100:27;;-1:-1:-1;;;1669:41:14;;1624:4;1669:41;;;229:7100:27;;;1669:41:14;229:7100:27;;;;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;229:7100:27;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3746:222;3903:58;3746:222;3847:39;:21;2502:14;229:7100;3847:39;;:::i;:::-;-1:-1:-1;;;;;229:7100:27;;-1:-1:-1;229:7100:27;;;3156:9;229:7100;;;;;;;3903:58;:::i;:::-;3746:222;:::o;229:7100::-;;1412:43:8;;;229:7100:27;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4122:257;229:7100;;-1:-1:-1;;;4237:30:27;;4261:4;4237:30;;;229:7100;;4122:257;;-1:-1:-1;;;;;229:7100:27;;;;4237:30;;229:7100;;;;4237:30;;;;;;;-1:-1:-1;4237:30:27;;;4122:257;229:7100;4237:53;4307:65;229:7100;;;-1:-1:-1;229:7100:27;2758:19;229:7100;;;-1:-1:-1;229:7100:27;;4237:53;;:::i;:::-;229:7100;-1:-1:-1;229:7100:27;3440:14;229:7100;;;-1:-1:-1;229:7100:27;;;;-1:-1:-1;229:7100:27;;;-1:-1:-1;229:7100:27;;4307:65;;:::i;4237:30::-;;;;;;;;;;;;;;;:::i;:::-;;;229:7100;;;;-1:-1:-1;229:7100:27;;;4237:53;:30;;;;;;;;229:7100;;;-1:-1:-1;229:7100:27;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;1412:43:8;229:7100:27;;-1:-1:-1;;229:7100:27;;;;;:::i;:::-;;;;-1:-1:-1;229:7100:27;;;;:::o;:::-;;;:::o;4625:582:14:-;;4797:8;;-1:-1:-1;229:7100:27;;5874:21:14;:17;;6046:142;;;;;;5870:383;229:7100:27;;-1:-1:-1;;;6225:17:14;;;;;4793:408;229:7100:27;;5045:22:14;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;229:7100:27;;-1:-1:-1;;;5121:24:14;;-1:-1:-1;;;;;229:7100:27;;;5121:24:14;;;229:7100:27;;;5121:24:14;5045:49;5071:18;;;:23;5045:49;;6436:242:27;-1:-1:-1;;;;;229:7100:27;-1:-1:-1;229:7100:27;;;6621:7;229:7100;;;;;;-1:-1:-1;;229:7100:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6597:74;6436:242;:::o;229:7100::-;-1:-1:-1;;;229:7100:27;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;;;-1:-1:-1;;;229:7100:27;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "440200",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"payee(uint256)": "4525",
								"releasable(address)": "9202",
								"releasable(address,address)": "infinite",
								"release(address)": "infinite",
								"release(address,address)": "infinite",
								"released(address)": "2535",
								"released(address,address)": "2610",
								"shares(address)": "2601",
								"totalReleased()": "2488",
								"totalReleased(address)": "2623",
								"totalShares()": "2292"
							},
							"internal": {
								"_addPayee(address,uint256)": "infinite",
								"_pendingPayment(address,uint256,uint256)": "4444"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "80"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSHSIZE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "CODESIZE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "CODECOPY",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP10",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "15"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "16"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "22"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "22"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "26"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "27"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1295,
									"end": 1326,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "29"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1399,
									"end": 1416,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "31"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 1497,
									"end": 1500,
									"name": "tag",
									"source": 27,
									"value": "33"
								},
								{
									"begin": 1497,
									"end": 1500,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "34"
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "36"
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 1526,
									"end": 1535,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "tag",
									"source": 27,
									"value": "36"
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "37"
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 1537,
									"end": 1547,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "tag",
									"source": 27,
									"value": "37"
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 6942,
									"end": 6963,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 6942,
									"end": 6963,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "38"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7030,
									"end": 7041,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7030,
									"end": 7041,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7093,
									"end": 7100,
									"name": "PUSH",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "42"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "10000000000000000"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "46"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP10",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "A0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "NOT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "OR",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "48"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "PUSH",
									"source": 27,
									"value": "40C340F65E17194D14DDDDB073D3C9F888E3CB52B5AAE0C6C7706B4FBC905FAC"
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "LOG1",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "EQ",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "50"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 1463,
									"end": 1476,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "33"
								},
								{
									"begin": 1463,
									"end": 1476,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "50"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "48"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "46"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "41"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "42"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP10",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "2B"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206163636F756E7420616C7265616479"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "2068617320736861726573"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A8"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1D"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A20736861726573206172652030000000"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "38"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "2C"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206163636F756E742069732074686520"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "7A65726F2061646472657373"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "tag",
									"source": 27,
									"value": "34"
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH #[$]",
									"source": 27,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [$]",
									"source": 27,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "CODECOPY",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "RETURN",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "31"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1A"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206E6F20706179656573000000000000"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "29"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A2070617965657320616E642073686172"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "CAE640D8CADCCEE8D040DAD2E6DAC2E8C6D"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "73"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "27"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "26"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "16"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "15"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "OR",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "41"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "58"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "tag",
									"source": 27,
									"value": "58"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 229,
									"end": 7329,
									"name": "REVERT",
									"source": 27
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220c73c81f366e751ea1b8523718e4c7e3b61f85b108925cdcda31508b5b6d6349864736f6c63430008140033",
									".code": [
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "80"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "13"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "tag",
											"source": -1,
											"value": "14"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "JUMPDEST",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "15"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "15"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2157,
											"end": 2166,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "PUSH",
											"source": 27,
											"value": "6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770"
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "LOG1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "STOP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "13"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SHR",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "19165587"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "18"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3A98EF39"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "406072A9"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "22"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "48B75044"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "8B83209B"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "9852595C"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "28"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "A3F8EACE"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "30"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "C45AC050"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "CE7C2AC2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "34"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "D79779B2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "36"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "E33B7DE3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "14"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 2502,
											"end": 2516,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "36"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "48"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "48"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2758,
											"end": 2777,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "34"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "53"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "53"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2957,
											"end": 2964,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "59"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "59"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "30"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "66"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "66"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "28"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "71"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "71"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "76"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "A0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "76"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "82"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "82"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "83"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "83"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "A0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5577,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5590,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5590,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 5562,
											"end": 5633,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "tag",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "85"
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 5662,
											"end": 5688,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "tag",
											"source": 27,
											"value": "85"
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "86"
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 5699,
											"end": 5767,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "tag",
											"source": 27,
											"value": "86"
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6036,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "87"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 6017,
											"end": 6054,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "tag",
											"source": 27,
											"value": "87"
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6088,
											"end": 6102,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A9059CBB"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP4",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP4",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "88"
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "SWAP2",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "89"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "6"
										},
										{
											"begin": 1412,
											"end": 1455,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "tag",
											"source": 8,
											"value": "89"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "MLOAD",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "DUP3",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "DUP11",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "GAS",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "CALL",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "91"
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "10"
										},
										{
											"begin": 3462,
											"end": 3493,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "tag",
											"source": 14,
											"value": "91"
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "DUP8",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "11"
										},
										{
											"begin": 3510,
											"end": 3565,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "tag",
											"source": 14,
											"value": "88"
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "SWAP2",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "ISZERO",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "ISZERO",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "SWAP2",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "92"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMPI",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "93"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "94"
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "JUMPI",
											"source": 8
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "PUSH",
											"source": 27,
											"value": "3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A"
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "LOG2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "tag",
											"source": 8,
											"value": "94"
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "5274AFE7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "REVERT",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "tag",
											"source": 8,
											"value": "92"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "SWAP3",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "SWAP4",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "97"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "99"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH",
											"source": 8,
											"value": "0"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "93"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMP",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "99"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "97"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "22"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "105"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "105"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "106"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "106"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3440,
											"end": 3454,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "18"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "115"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4655,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "117"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4668,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4668,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 4640,
											"end": 4711,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "tag",
											"source": 27,
											"value": "117"
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "118"
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 4740,
											"end": 4759,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "tag",
											"source": 27,
											"value": "118"
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "119"
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 4770,
											"end": 4838,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "tag",
											"source": 27,
											"value": "119"
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "120"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 5029,
											"end": 5054,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "tag",
											"source": 27,
											"value": "120"
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 1616,
											"end": 1637,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1616,
											"end": 1637,
											"name": "SELFBALANCE",
											"source": 14
										},
										{
											"begin": 1616,
											"end": 1646,
											"name": "LT",
											"source": 14
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "121"
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP4",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP5",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP7",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "GAS",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "CALL",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "123"
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "10"
										},
										{
											"begin": 1750,
											"end": 1783,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "tag",
											"source": 14,
											"value": "123"
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 1797,
											"end": 1805,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "124"
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 5188,
											"end": 5221,
											"name": "PUSH",
											"source": 27,
											"value": "DF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 5188,
											"end": 5221,
											"name": "LOG1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "tag",
											"source": 14,
											"value": "124"
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A12F521"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "tag",
											"source": 14,
											"value": "121"
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "CD786059"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 1624,
											"end": 1628,
											"name": "ADDRESS",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP8",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "115"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "130"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "130"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4E487B71"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "tag",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "133"
										},
										{
											"begin": 3847,
											"end": 3868,
											"name": "SELFBALANCE",
											"source": 27
										},
										{
											"begin": 2502,
											"end": 2516,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 3847,
											"end": 3886,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "tag",
											"source": 27,
											"value": "133"
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3156,
											"end": 3165,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 3903,
											"end": 3961,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "tag",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH",
											"source": 8,
											"value": "1F"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "NOT",
											"source": 8
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "OR",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4E487B71"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "41"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "tag",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70A08231"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4261,
											"end": 4265,
											"name": "ADDRESS",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "GAS",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "STATICCALL",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "136"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "138"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "tag",
											"source": 27,
											"value": "139"
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP7",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2758,
											"end": 2777,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 4237,
											"end": 4290,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "tag",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3440,
											"end": 3454,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 4307,
											"end": 4372,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "138"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "142"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "143"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "144"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 4237,
											"end": 4267,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "144"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "139"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "142"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "143"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "136"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATACOPY",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "147"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "147"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "736861726573"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "D0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "149"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "149"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "2B"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "191D59481C185E5B595B9D"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "AA"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "10"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "151"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "155"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH",
											"source": 8,
											"value": "1F"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "155"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "RETURNDATACOPY",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "151"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "tag",
											"source": 14,
											"value": "11"
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 4797,
											"end": 4805,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "157"
										},
										{
											"begin": 4797,
											"end": 4805,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 5874,
											"end": 5895,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5874,
											"end": 5891,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "159"
										},
										{
											"begin": 5874,
											"end": 5891,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "MLOAD",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "PUSH",
											"source": 14,
											"value": "20"
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 5870,
											"end": 6253,
											"name": "tag",
											"source": 14,
											"value": "159"
										},
										{
											"begin": 5870,
											"end": 6253,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A12F521"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "PUSH",
											"source": 14,
											"value": "4"
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "tag",
											"source": 14,
											"value": "157"
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 5045,
											"end": 5067,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "161"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "tag",
											"source": 14,
											"value": "162"
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "163"
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "tag",
											"source": 14,
											"value": "163"
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "9996B315"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "PUSH",
											"source": 14,
											"value": "4"
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "DUP3",
											"source": 14
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "tag",
											"source": 14,
											"value": "161"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "EXTCODESIZE",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5094,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "162"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "tag",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6621,
											"end": 6628,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MUL",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DIV",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "OR",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "165"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "167"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DIV",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "169"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 6597,
											"end": 6671,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 6436,
											"end": 6678,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "169"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "167"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "tag",
											"source": 27,
											"value": "165"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 229,
											"end": 7329,
											"name": "REVERT",
											"source": 27
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {
							"payee(uint256)": "8b83209b",
							"releasable(address)": "a3f8eace",
							"releasable(address,address)": "c45ac050",
							"release(address)": "19165587",
							"release(address,address)": "48b75044",
							"released(address)": "9852595c",
							"released(address,address)": "406072a9",
							"shares(address)": "ce7c2ac2",
							"totalReleased()": "e33b7de3",
							"totalReleased(address)": "d79779b2",
							"totalShares()": "3a98ef39"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"payees\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"payee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at the matching position in the `shares` array. All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`.\"},\"payee(uint256)\":{\"details\":\"Getter for the address of the payee number `index`.\"},\"releasable(address)\":{\"details\":\"Getter for the amount of payee's releasable Ether.\"},\"releasable(address,address)\":{\"details\":\"Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract.\"},\"release(address)\":{\"details\":\"Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals.\"},\"release(address,address)\":{\"details\":\"Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract.\"},\"released(address)\":{\"details\":\"Getter for the amount of Ether already released to a payee.\"},\"released(address,address)\":{\"details\":\"Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract.\"},\"shares(address)\":{\"details\":\"Getter for the amount of shares held by an account.\"},\"totalReleased()\":{\"details\":\"Getter for the total amount of Ether already released.\"},\"totalReleased(address)\":{\"details\":\"Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract.\"},\"totalShares()\":{\"details\":\"Getter for the total shares held by payees.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TokenPaymentSplitter.sol\":\"PaymentSplitter\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"contracts/TokenPaymentSplitter.sol\":{\"keccak256\":\"0x79717f00c12ed231f95b55ed0f2373347a2faca911e8cc1284a4807836d5205b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99fa2c12dd8a63e6ed3f23d50d3934cf843d42b6e77821d1b51d500a9fcdf8a8\",\"dweb:/ipfs/QmRWsQSQM9X58Sxa471ramzCD4uLKSLdfoBdr3FwTtQdpv\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 11191,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_totalShares",
								"offset": 0,
								"slot": "0",
								"type": "t_uint256"
							},
							{
								"astId": 11193,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_totalReleased",
								"offset": 0,
								"slot": "1",
								"type": "t_uint256"
							},
							{
								"astId": 11197,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_shares",
								"offset": 0,
								"slot": "2",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 11201,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_released",
								"offset": 0,
								"slot": "3",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 11204,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_payees",
								"offset": 0,
								"slot": "4",
								"type": "t_array(t_address)dyn_storage"
							},
							{
								"astId": 11209,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_erc20TotalReleased",
								"offset": 0,
								"slot": "5",
								"type": "t_mapping(t_contract(IERC20)807,t_uint256)"
							},
							{
								"astId": 11216,
								"contract": "contracts/TokenPaymentSplitter.sol:PaymentSplitter",
								"label": "_erc20Released",
								"offset": 0,
								"slot": "6",
								"type": "t_mapping(t_contract(IERC20)807,t_mapping(t_address,t_uint256))"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_array(t_address)dyn_storage": {
								"base": "t_address",
								"encoding": "dynamic_array",
								"label": "address[]",
								"numberOfBytes": "32"
							},
							"t_contract(IERC20)807": {
								"encoding": "inplace",
								"label": "contract IERC20",
								"numberOfBytes": "20"
							},
							"t_mapping(t_address,t_uint256)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_mapping(t_contract(IERC20)807,t_mapping(t_address,t_uint256))": {
								"encoding": "mapping",
								"key": "t_contract(IERC20)807",
								"label": "mapping(contract IERC20 => mapping(address => uint256))",
								"numberOfBytes": "32",
								"value": "t_mapping(t_address,t_uint256)"
							},
							"t_mapping(t_contract(IERC20)807,t_uint256)": {
								"encoding": "mapping",
								"key": "t_contract(IERC20)807",
								"label": "mapping(contract IERC20 => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_uint256": {
								"encoding": "inplace",
								"label": "uint256",
								"numberOfBytes": "32"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				},
				"TokenPaymentSplitter": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address[]",
									"name": "payees",
									"type": "address[]"
								},
								{
									"internalType": "uint256[]",
									"name": "shares_",
									"type": "uint256[]"
								}
							],
							"stateMutability": "payable",
							"type": "constructor"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "target",
									"type": "address"
								}
							],
							"name": "AddressEmptyCode",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "AddressInsufficientBalance",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "FailedInnerCall",
							"type": "error"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "token",
									"type": "address"
								}
							],
							"name": "SafeERC20FailedOperation",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "ERC20PaymentReleased",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "account",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "shares",
									"type": "uint256"
								}
							],
							"name": "PayeeAdded",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "PaymentReceived",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "PaymentReleased",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "index",
									"type": "uint256"
								}
							],
							"name": "payee",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "releasable",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "releasable",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								}
							],
							"name": "release",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "release",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "released",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "released",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "shares",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "contract IERC20",
									"name": "token",
									"type": "address"
								}
							],
							"name": "totalReleased",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalReleased",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalShares",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"stateMutability": "payable",
							"type": "receive"
						}
					],
					"devdoc": {
						"errors": {
							"AddressEmptyCode(address)": [
								{
									"details": "There's no code at `target` (it is not a contract)."
								}
							],
							"AddressInsufficientBalance(address)": [
								{
									"details": "The ETH balance of the account is not enough to perform the operation."
								}
							],
							"FailedInnerCall()": [
								{
									"details": "A call to an address target failed. The target may have reverted."
								}
							],
							"SafeERC20FailedOperation(address)": [
								{
									"details": "An operation with an ERC20 token failed."
								}
							]
						},
						"kind": "dev",
						"methods": {
							"payee(uint256)": {
								"details": "Getter for the address of the payee number `index`."
							},
							"releasable(address)": {
								"details": "Getter for the amount of payee's releasable Ether."
							},
							"releasable(address,address)": {
								"details": "Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract."
							},
							"release(address)": {
								"details": "Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals."
							},
							"release(address,address)": {
								"details": "Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract."
							},
							"released(address)": {
								"details": "Getter for the amount of Ether already released to a payee."
							},
							"released(address,address)": {
								"details": "Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract."
							},
							"shares(address)": {
								"details": "Getter for the amount of shares held by an account."
							},
							"totalReleased()": {
								"details": "Getter for the total amount of Ether already released."
							},
							"totalReleased(address)": {
								"details": "Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract."
							},
							"totalShares()": {
								"details": "Getter for the total shares held by payees."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  0x40\n  0x80\n  dup2\n  mstore\n  bytecodeSize\n  dup1\n  codesize\n  sub\n  dup1\n  tag_4\n  dup2\n  tag_1\n  jump\t// in\ntag_4:\n  swap3\n  dup4\n  codecopy\n  dup2\n  add\n  swap2\n  dup1\n  dup3\n  dup5\n  sub\n  slt\n  tag_24\n  jumpi\n  dup2\n  mload\n  sub(shl(0x40, 0x01), 0x01)\n  swap4\n  swap1\n  dup5\n  dup2\n  gt\n  tag_24\n  jumpi\n  dup4\n  add\n  swap4\n  dup2\n  0x1f\n  dup7\n  add\n  slt\n  iszero\n  tag_24\n  jumpi\n  dup5\n  mload\n  swap4\n  tag_11\n  tag_12\n  dup7\n  tag_2\n  jump\t// in\ntag_12:\n  tag_1\n  jump\t// in\ntag_11:\n  swap6\n  dup7\n  swap6\n  dup1\n  dup9\n  mstore\n  0x20\n  dup1\n  dup1\n  swap10\n  add\n  swap2\n  0x05\n  shl\n  dup4\n  add\n  add\n  swap2\n  dup6\n  dup4\n  gt\n  tag_24\n  jumpi\n  dup9\n  add\n  swap1\ntag_15:\n  dup3\n  dup3\n  lt\n  tag_16\n  jumpi\n  pop\n  pop\n  pop\n  dup6\n  dup2\n  add\n  mload\n  swap2\n  dup3\n  gt\n  tag_24\n  jumpi\n  add\n  swap1\n  dup1\n  0x1f\n  dup4\n  add\n  slt\n  iszero\n  tag_24\n  jumpi\n  dup2\n  mload\n  swap2\n  tag_22\n  tag_12\n  dup5\n  tag_2\n  jump\t// in\ntag_22:\n  swap3\n  dup7\n  dup1\n  dup6\n  dup4\n  dup2\n  mstore\n  add\n  swap2\n  0x05\n  shl\n  dup4\n  add\n  add\n  swap3\n  dup4\n  gt\n  tag_24\n  jumpi\n  dup7\n  dup1\n  swap3\n  add\n  swap1\ntag_26:\n  dup4\n  dup3\n  lt\n  tag_27\n  jumpi\n  pop\n  pop\n  pop\n  pop\n  dup3\n  mload\n  dup2\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1295:1326  payees.length == shares_.length */\n  sub\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  tag_29\n  jumpi\n  dup3\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1399:1416  payees.length > 0 */\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  tag_31\n  jumpi\n  0x00\n    /* \"contracts/TokenPaymentSplitter.sol\":1497:1500  i++ */\ntag_33:\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup4\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":1478:1495  i < payees.length */\n  dup2\n  lt\n  iszero\n  tag_34\n  jumpi\n  sub(shl(0xa0, 0x01), 0x01)\n    /* \"contracts/TokenPaymentSplitter.sol\":1526:1535  payees[i] */\n  tag_36\n  dup3\n  dup7\n  tag_3\n  jump\t// in\ntag_36:\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  mload\n  and\n    /* \"contracts/TokenPaymentSplitter.sol\":1537:1547  shares_[i] */\n  tag_37\n  dup3\n  dup5\n  tag_3\n  jump\t// in\ntag_37:\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  mload\n    /* \"contracts/TokenPaymentSplitter.sol\":6942:6963  account != address(0) */\n  dup2\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  tag_38\n  jumpi\n    /* \"contracts/TokenPaymentSplitter.sol\":7030:7041  shares_ > 0 */\n  dup1\n  iszero\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  tag_40\n  jumpi\n  dup2\n  0x00\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7093:7100  _shares */\n  0x02\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup1\n  dup9\n  mstore\n  dup6\n  0x00\n  keccak256\n  sload\n  tag_42\n  jumpi\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  swap1\n  dup2\n  sload\n  0x010000000000000000\n  dup2\n  lt\n  iszero\n  tag_44\n  jumpi\n  0x01\n  dup2\n  add\n  dup1\n  dup5\n  sstore\n  dup2\n  lt\n  iszero\n  tag_46\n  jumpi\n  dup3\n  0x00\n  mstore\n  dup10\n  0x00\n  keccak256\n  add\n  dup5\n  0x01\n  dup1\n  0xa0\n  shl\n  sub\n  not\n  dup3\n  sload\n  and\n  or\n  swap1\n  sstore\n  dup4\n  0x00\n  mstore\n  dup9\n  mstore\n  dup2\n  dup7\n  0x00\n  keccak256\n  sstore\n  sload(0x00)\n  swap1\n  dup3\n  dup3\n  add\n  dup1\n  swap3\n  gt\n  tag_48\n  jumpi\n  pop\n  0x00\n  sstore\n  dup5\n  mload\n  swap2\n  dup3\n  mstore\n  dup7\n  dup3\n  add\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7292:7320  PayeeAdded(account, shares_) */\n  0x40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac\n  swap1\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup5\n  swap1\n    /* \"contracts/TokenPaymentSplitter.sol\":7292:7320  PayeeAdded(account, shares_) */\n  log1\n  not(0x00)\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup2\n  eq\n  tag_50\n  jumpi\n  0x01\n  add\n    /* \"contracts/TokenPaymentSplitter.sol\":1463:1476  uint256 i = 0 */\n  jump(tag_33)\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\ntag_50:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  0x11\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  mstore\n  revert(0x00, 0x24)\ntag_48:\n  0x11\n  swap1\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_46:\n  0x32\n  dup4\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_44:\n  0x41\n  dup4\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore\n  revert(0x00, 0x24)\ntag_42:\n  dup6\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup2\n  add\n  dup10\n  swap1\n  mstore\n  0x2b\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206163636f756e7420616c7265616479\n  0x44\n  dup3\n  add\n  mstore\n  shl(0xa8, 0x2068617320736861726573)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\ntag_40:\n  dup5\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup2\n  add\n  dup9\n  swap1\n  mstore\n  0x1d\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a20736861726573206172652030000000\n  0x44\n  dup3\n  add\n  mstore\n  0x64\n  swap1\n  revert\ntag_38:\n  dup5\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n    /* \"contracts/TokenPaymentSplitter.sol\":7173:7180  _payees */\n  0x04\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  dup2\n  add\n  dup9\n  swap1\n  mstore\n  0x2c\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206163636f756e742069732074686520\n  0x44\n  dup3\n  add\n  mstore\n  shl(0xa0, 0x7a65726f2061646472657373)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\n    /* \"contracts/TokenPaymentSplitter.sol\":1478:1495  i < payees.length */\ntag_34:\n  dup3\n    /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n  mload\n  dataSize(sub_0)\n  swap1\n  dup2\n  dataOffset(sub_0)\n  dup3\n  codecopy\n  return\ntag_31:\n  dup2\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n  0x04\n  dup2\n  add\n  dup6\n  swap1\n  mstore\n  0x1a\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a206e6f20706179656573000000000000\n  0x44\n  dup3\n  add\n  mstore\n  0x64\n  swap1\n  revert\ntag_29:\n  dup2\n  mload\n  shl(0xe5, 0x461bcd)\n  dup2\n  mstore\n  0x04\n  dup2\n  add\n  dup6\n  swap1\n  mstore\n  0x32\n  0x24\n  dup3\n  add\n  mstore\n  0x5061796d656e7453706c69747465723a2070617965657320616e642073686172\n  0x44\n  dup3\n  add\n  mstore\n  shl(0x73, 0x0cae640d8cadccee8d040dad2e6dac2e8c6d)\n  0x64\n  dup3\n  add\n  mstore\n  0x84\n  swap1\n  revert\ntag_27:\n  dup2\n  mload\n  dup2\n  mstore\n  swap1\n  dup3\n  add\n  swap1\n  dup3\n  add\n  jump(tag_26)\ntag_24:\n  0x00\n  dup1\n  revert\ntag_16:\n  dup2\n  mload\n  sub(shl(0xa0, 0x01), 0x01)\n  dup2\n  and\n  dup2\n  sub\n  tag_24\n  jumpi\n  dup2\n  mstore\n  swap1\n  dup9\n  add\n  swap1\n  dup9\n  add\n  jump(tag_15)\ntag_1:\n  mload(0x40)\n  swap2\n  swap1\n  0x1f\n  add\n  not(0x1f)\n  and\n  dup3\n  add\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  dup4\n  dup3\n  lt\n  or\n  tag_54\n  jumpi\n  0x40\n  mstore\n  jump\t// out\ntag_54:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x41)\n  revert(0x00, 0x24)\ntag_2:\n  sub(shl(0x40, 0x01), 0x01)\n  dup2\n  gt\n  tag_54\n  jumpi\n  0x05\n  shl\n  0x20\n  add\n  swap1\n  jump\t// out\ntag_3:\n  dup1\n  mload\n  dup3\n  lt\n  iszero\n  tag_58\n  jumpi\n  0x20\n  swap2\n  0x05\n  shl\n  add\n  add\n  swap1\n  jump\t// out\ntag_58:\n  mstore(0x00, shl(0xe0, 0x4e487b71))\n  mstore(0x04, 0x32)\n  revert(0x00, 0x24)\nstop\n\nsub_0: assembly {\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x40\n      0x80\n      dup2\n      mstore\n      0x04\n      dup1\n      calldatasize\n      lt\n      iszero\n      tag_13\n      jumpi\n    tag_14:\n      pop\n      jumpi(tag_15, iszero(calldatasize))\n      0x00\n      dup1\n      revert\n    tag_15:\n      mload\n        /* \"@openzeppelin/contracts/utils/Context.sol\":735:745  msg.sender */\n      caller\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2157:2166  msg.value */\n      callvalue\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x20\n      dup3\n      add\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2127:2167  PaymentReceived(_msgSender(), msg.value) */\n      0x6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x40\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":2127:2167  PaymentReceived(_msgSender(), msg.value) */\n      log1\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      stop\n    tag_13:\n      0x00\n      swap1\n      dup2\n      calldataload\n      0xe0\n      shr\n      swap1\n      dup2\n      0x19165587\n      eq\n      tag_18\n      jumpi\n      dup2\n      0x3a98ef39\n      eq\n      tag_20\n      jumpi\n      dup2\n      0x406072a9\n      eq\n      tag_22\n      jumpi\n      dup2\n      0x48b75044\n      eq\n      tag_24\n      jumpi\n      dup2\n      0x8b83209b\n      eq\n      tag_26\n      jumpi\n      pop\n      dup1\n      0x9852595c\n      eq\n      tag_28\n      jumpi\n      dup1\n      0xa3f8eace\n      eq\n      tag_30\n      jumpi\n      dup1\n      0xc45ac050\n      eq\n      tag_32\n      jumpi\n      dup1\n      0xce7c2ac2\n      eq\n      tag_34\n      jumpi\n      dup1\n      0xd79779b2\n      eq\n      tag_36\n      jumpi\n      0xe33b7de3\n      sub\n      tag_14\n      jumpi\n      swap1\n      jumpi(tag_42, callvalue)\n      dup2\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":2502:2516  _totalReleased */\n      0x01\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_42:\n      pop\n      dup1\n      revert\n    tag_36:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_48\n      tag_1\n      jump\t// in\n    tag_48:\n      and\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2758:2777  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_34:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_53\n      tag_1\n      jump\t// in\n    tag_53:\n      and\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2957:2964  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_32:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap1\n      tag_58\n      tag_59\n      tag_1\n      jump\t// in\n    tag_59:\n      tag_60\n      tag_2\n      jump\t// in\n    tag_60:\n      swap1\n      tag_7\n      jump\t// in\n    tag_58:\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_30:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap1\n      tag_58\n      tag_66\n      tag_1\n      jump\t// in\n    tag_66:\n      tag_5\n      jump\t// in\n    tag_28:\n      pop\n      swap1\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      0x20\n      swap2\n      dup2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      tag_71\n      tag_1\n      jump\t// in\n    tag_71:\n      and\n      dup2\n      mstore\n      0x03\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_26:\n      dup4\n      dup4\n      jumpi(tag_74, callvalue)\n      jumpi(tag_74, slt(add(not(0x03), calldatasize), 0x20))\n      dup3\n      calldataload\n      swap1\n      dup4\n      sload\n      dup3\n      lt\n      iszero\n      tag_76\n      jumpi\n      swap3\n      0x20\n      swap4\n      mstore\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap1\n      0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b\n      add\n      sload\n      and\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_76:\n      shl(0xe0, 0x4e487b71)\n      dup2\n      mstore\n      0x32\n      dup5\n      mstore\n      0x24\n      swap1\n      revert\n    tag_74:\n      dup1\n      revert\n    tag_24:\n      swap1\n      pop\n      jumpi(tag_42, callvalue)\n      dup3\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      tag_82\n      tag_1\n      jump\t// in\n    tag_82:\n      tag_83\n      tag_2\n      jump\t// in\n    tag_83:\n      0x01\n      dup1\n      0xa0\n      shl\n      sub\n      swap3\n      dup4\n      dup3\n      and\n      swap4\n      dup5\n      dup7\n      mstore\n      0x20\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":5570:5577  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":5562:5633  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_84\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup9\n      dup9\n      keccak256\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":5570:5590  _shares[account] > 0 */\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":5562:5633  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_8\n      jump\t// in\n    tag_84:\n        /* \"contracts/TokenPaymentSplitter.sol\":5662:5688  releasable(token, account) */\n      tag_85\n      dup5\n      dup7\n      tag_7\n      jump\t// in\n    tag_85:\n        /* \"contracts/TokenPaymentSplitter.sol\":5707:5719  payment != 0 */\n      swap5\n        /* \"contracts/TokenPaymentSplitter.sol\":5699:5767  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_86\n        /* \"contracts/TokenPaymentSplitter.sol\":5707:5719  payment != 0 */\n      dup7\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":5699:5767  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_9\n      jump\t// in\n    tag_86:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      and\n      swap5\n      dup6\n      dup8\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6036  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      mstore\n      dup8\n      dup8\n      keccak256\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6054  _erc20TotalReleased[token] += payment */\n      tag_87\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup7\n      dup3\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":6017:6054  _erc20TotalReleased[token] += payment */\n      tag_4\n      jump\t// in\n    tag_87:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap1\n      sstore\n      dup6\n      dup8\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6088:6102  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      mstore\n      dup8\n      dup8\n      keccak256\n      swap1\n      dup8\n      mstore\n      dup2\n      mstore\n      dup7\n      dup7\n      keccak256\n      dup1\n      sload\n      dup6\n      add\n      swap1\n      sstore\n      dup7\n      mload\n      shl(0xe0, 0xa9059cbb)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup2\n      dup4\n      add\n      swap1\n      dup2\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup6\n      and\n      0x24\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup4\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mstore\n      0x44\n      dup1\n      dup4\n      add\n      dup8\n      swap1\n      mstore\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      dup3\n      mstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3510:3565  verifyCallResultFromTarget(target, success, returndata) */\n      tag_88\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup9\n      swap2\n      dup3\n      swap2\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      tag_89\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x64\n      dup3\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      tag_6\n      jump\t// in\n    tag_89:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3462:3493  target.call{value: value}(data) */\n      mload\n      swap1\n      dup3\n      dup11\n      gas\n      call\n      tag_91\n      tag_10\n      jump\t// in\n    tag_91:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3510:3565  verifyCallResultFromTarget(target, success, returndata) */\n      swap1\n      dup8\n      tag_11\n      jump\t// in\n    tag_88:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup1\n      mload\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4573  returndata.length != 0 */\n      swap2\n      dup3\n      iszero\n      iszero\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n      swap2\n      dup3\n      tag_92\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n    tag_93:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4547:4682  if (returndata.length != 0 && !abi.decode(returndata, (bool))) {... */\n      pop\n      pop\n      swap1\n      pop\n      tag_94\n      jumpi\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap4\n      mload\n      sub(shl(0xa0, 0x01), 0x01)\n      swap1\n      swap5\n      and\n      dup5\n      mstore\n      0x20\n      dup5\n      add\n      mstore\n      swap1\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":6212:6257  ERC20PaymentReleased(token, account, payment) */\n      0x3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x40\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":6212:6257  ERC20PaymentReleased(token, account, payment) */\n      log2\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4547:4682  if (returndata.length != 0 && !abi.decode(returndata, (bool))) {... */\n    tag_94:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup6\n      mload\n      shl(0xe0, 0x5274afe7)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4631:4671  SafeERC20FailedOperation(address(token)) */\n      dup2\n      mstore\n      swap1\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup5\n      swap1\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4631:4671  SafeERC20FailedOperation(address(token)) */\n      revert\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n    tag_92:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4578:4608  abi.decode(returndata, (bool)) */\n      dup1\n      swap3\n      pop\n      dup2\n      swap4\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      sub\n      slt\n      tag_97\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4578:4608  abi.decode(returndata, (bool)) */\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mload\n      dup1\n      iszero\n      swap1\n      dup2\n      iszero\n      sub\n      tag_99\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4551:4608  returndata.length != 0 && !abi.decode(returndata, (bool)) */\n      dup1\n      0x00\n      dup1\n      jump(tag_93)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n    tag_99:\n      dup6\n      dup1\n      revert\n    tag_97:\n      dup7\n      dup1\n      revert\n    tag_22:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      dup1\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      dup1\n      0x20\n      swap3\n      tag_105\n      tag_1\n      jump\t// in\n    tag_105:\n      tag_106\n      tag_2\n      jump\t// in\n    tag_106:\n      sub(shl(0xa0, 0x01), 0x01)\n      swap2\n      dup3\n      and\n      dup4\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3440:3454  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup7\n      mstore\n      dup4\n      dup4\n      keccak256\n      swap2\n      and\n      dup3\n      mstore\n      dup5\n      mstore\n      keccak256\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_20:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      dup2\n      add(calldatasize, not(0x03))\n      slt\n      tag_42\n      jumpi\n      0x20\n      swap2\n      sload\n      swap1\n      mload\n      swap1\n      dup2\n      mstore\n      return\n    tag_18:\n      dup3\n      dup5\n      jumpi(tag_42, callvalue)\n      jumpi(tag_42, slt(add(not(0x03), calldatasize), 0x20))\n      dup3\n      calldataload\n      sub(shl(0xa0, 0x01), 0x01)\n      dup2\n      and\n      swap1\n      dup2\n      swap1\n      sub\n      tag_115\n      jumpi\n      dup1\n      dup4\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4648:4655  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x20\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4640:4711  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_117\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      dup5\n      keccak256\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":4648:4668  _shares[account] > 0 */\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":4640:4711  require(_shares[account] > 0, \"PaymentSplitter: account has no shares\") */\n      tag_8\n      jump\t// in\n    tag_117:\n        /* \"contracts/TokenPaymentSplitter.sol\":4740:4759  releasable(account) */\n      tag_118\n      dup2\n      tag_5\n      jump\t// in\n    tag_118:\n        /* \"contracts/TokenPaymentSplitter.sol\":4770:4838  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_119\n        /* \"contracts/TokenPaymentSplitter.sol\":4778:4790  payment != 0 */\n      dup2\n      iszero\n      iszero\n        /* \"contracts/TokenPaymentSplitter.sol\":4770:4838  require(payment != 0, \"PaymentSplitter: account is not due payment\") */\n      tag_9\n      jump\t// in\n    tag_119:\n        /* \"contracts/TokenPaymentSplitter.sol\":5029:5054  _totalReleased += payment */\n      tag_120\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup2\n      sload(0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":5029:5054  _totalReleased += payment */\n      tag_4\n      jump\t// in\n    tag_120:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x01\n      sstore\n      dup2\n      dup5\n      mstore\n      mstore(0x20, 0x03)\n      dup3\n      dup5\n      keccak256\n      dup2\n      dup2\n      sload\n      add\n      swap1\n      sstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1616:1637  address(this).balance */\n      dup1\n      selfbalance\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1616:1646  address(this).balance < amount */\n      lt\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1612:1721  if (address(this).balance < amount) {... */\n      tag_121\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1750:1783  recipient.call{value: amount}(\"\") */\n      dup4\n      dup1\n      dup1\n      dup1\n      dup5\n      dup7\n      gas\n      call\n      tag_123\n      tag_10\n      jump\t// in\n    tag_123:\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1797:1805  !success */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1793:1856  if (!success) {... */\n      tag_124\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":5188:5221  PaymentReleased(account, payment) */\n      0xdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap4\n      swap5\n      pop\n      dup3\n      mload\n      swap2\n      dup3\n      mstore\n      0x20\n      dup3\n      add\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":5188:5221  PaymentReleased(account, payment) */\n      log1\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup1\n      return\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1793:1856  if (!success) {... */\n    tag_124:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      mload\n      shl(0xe1, 0x0a12f521)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1828:1845  FailedInnerCall() */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup6\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1828:1845  FailedInnerCall() */\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1612:1721  if (address(this).balance < amount) {... */\n    tag_121:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      mload\n      shl(0xe0, 0xcd786059)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      dup2\n      mstore\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1624:1628  this */\n      address\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      dup2\n      dup8\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1669:1710  AddressInsufficientBalance(address(this)) */\n      revert\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n    tag_115:\n      dup3\n      dup1\n      revert\n    tag_1:\n      calldataload(0x04)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_126\n      jumpi\n      jump\t// out\n    tag_126:\n      0x00\n      dup1\n      revert\n    tag_2:\n      calldataload(0x24)\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n      dup3\n      and\n      dup3\n      sub\n      tag_126\n      jumpi\n      jump\t// out\n    tag_4:\n      swap2\n      swap1\n      dup3\n      add\n      dup1\n      swap3\n      gt\n      tag_130\n      jumpi\n      jump\t// out\n    tag_130:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x11)\n      revert(0x00, 0x24)\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n    tag_5:\n        /* \"contracts/TokenPaymentSplitter.sol\":3903:3961  _pendingPayment(account, totalReceived, released(account)) */\n      tag_132\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3886  address(this).balance + totalReleased() */\n      tag_133\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3868  address(this).balance */\n      selfbalance\n        /* \"contracts/TokenPaymentSplitter.sol\":2502:2516  _totalReleased */\n      0x01\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      sload\n        /* \"contracts/TokenPaymentSplitter.sol\":3847:3886  address(this).balance + totalReleased() */\n      swap1\n      tag_4\n      jump\t// in\n    tag_133:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3156:3165  _released */\n      0x03\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n      swap2\n        /* \"contracts/TokenPaymentSplitter.sol\":3903:3961  _pendingPayment(account, totalReceived, released(account)) */\n      tag_12\n      jump\t// in\n    tag_132:\n        /* \"contracts/TokenPaymentSplitter.sol\":3746:3968  function releasable(address account) public view returns (uint256) {... */\n      swap1\n      jump\t// out\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n    tag_6:\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      0x1f\n      dup1\n      not\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap2\n      add\n      and\n      dup2\n      add\n      swap1\n      dup2\n      lt\n      0xffffffffffffffff\n      dup3\n      gt\n      or\n      tag_134\n      jumpi\n      0x40\n      mstore\n      jump\t// out\n    tag_134:\n      mstore(0x00, shl(0xe0, 0x4e487b71))\n      mstore(0x04, 0x41)\n      revert(0x00, 0x24)\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n    tag_7:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mload(0x40)\n      shl(0xe0, 0x70a08231)\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":4261:4265  this */\n      address\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      0x04\n      dup3\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mstore\n      swap3\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n      swap2\n      swap1\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap1\n      dup2\n      and\n      swap1\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      0x20\n      dup1\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup7\n      0x24\n      dup2\n      dup7\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      gas\n      staticcall\n      swap6\n      dup7\n      iszero\n      tag_136\n      jumpi\n      0x00\n      swap7\n      tag_138\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":4122:4379  function releasable(IERC20 token, address account) public view returns (uint256) {... */\n    tag_139:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      tag_140\n        /* \"contracts/TokenPaymentSplitter.sol\":4307:4372  _pendingPayment(account, totalReceived, released(token, account)) */\n      tag_132\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap6\n      swap7\n      dup5\n      0x00\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":2758:2777  _erc20TotalReleased */\n      0x05\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup4\n      mstore\n      sload(keccak256(0x00, 0x40))\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      swap1\n      tag_4\n      jump\t// in\n    tag_140:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap3\n      0x00\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":3440:3454  _erc20Released */\n      0x06\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup2\n      mstore\n      keccak256(0x00, 0x40)\n      swap2\n      dup5\n      and\n      0x00\n      mstore\n      mstore\n      sload(keccak256(0x00, 0x40))\n        /* \"contracts/TokenPaymentSplitter.sol\":4307:4372  _pendingPayment(account, totalReceived, released(token, account)) */\n      swap2\n      tag_12\n      jump\t// in\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n    tag_138:\n      swap6\n      dup2\n      dup8\n      dup2\n      returndatasize\n      dup4\n      gt\n      tag_142\n      jumpi\n    tag_143:\n      tag_144\n      dup2\n      dup4\n      tag_6\n      jump\t// in\n    tag_144:\n      dup2\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      sub\n      slt\n      tag_74\n      jumpi\n      pop\n      swap5\n      mload\n      swap5\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4290  token.balanceOf(address(this)) + totalReleased(token) */\n      tag_140\n        /* \"contracts/TokenPaymentSplitter.sol\":4237:4267  token.balanceOf(address(this)) */\n      jump(tag_139)\n    tag_142:\n      pop\n      returndatasize\n      jump(tag_143)\n    tag_136:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mload(0x40)\n      returndatasize\n      0x00\n      dup3\n      returndatacopy\n      returndatasize\n      swap1\n      revert\n    tag_8:\n      iszero\n      tag_147\n      jumpi\n      jump\t// out\n    tag_147:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x26\n      0x24\n      dup3\n      add\n      mstore\n      0x5061796d656e7453706c69747465723a206163636f756e7420686173206e6f20\n      0x44\n      dup3\n      add\n      mstore\n      shl(0xd0, 0x736861726573)\n      0x64\n      dup3\n      add\n      mstore\n      0x84\n      swap1\n      revert\n    tag_9:\n      iszero\n      tag_149\n      jumpi\n      jump\t// out\n    tag_149:\n      mload(0x40)\n      shl(0xe5, 0x461bcd)\n      dup2\n      mstore\n      0x20\n      0x04\n      dup3\n      add\n      mstore\n      0x2b\n      0x24\n      dup3\n      add\n      mstore\n      0x5061796d656e7453706c69747465723a206163636f756e74206973206e6f7420\n      0x44\n      dup3\n      add\n      mstore\n      shl(0xaa, 0x191d59481c185e5b595b9d)\n      0x64\n      dup3\n      add\n      mstore\n      0x84\n      swap1\n      revert\n    tag_10:\n      jumpi(tag_151, iszero(returndatasize))\n      returndatasize\n      swap1\n      0xffffffffffffffff\n      dup3\n      gt\n      tag_134\n      jumpi\n      mload(0x40)\n      swap2\n      tag_155\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1412:1455  abi.encodeCall(token.transfer, (to, value)) */\n      0x1f\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup3\n      add\n      not(0x1f)\n      and\n      0x20\n      add\n      dup5\n      tag_6\n      jump\t// in\n    tag_155:\n      dup3\n      mstore\n      returndatasize\n      0x00\n      0x20\n      dup5\n      add\n      returndatacopy\n      jump\t// out\n    tag_151:\n      0x60\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4625:5207  function verifyCallResultFromTarget(... */\n    tag_11:\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4797:4805  !success */\n      tag_157\n      jumpi\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup1\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5874:5895  returndata.length > 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5874:5891  returndata.length */\n      tag_159\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":6046:6188  assembly {... */\n      dup1\n      mload\n      swap1\n      0x20\n      add\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5870:6253  if (returndata.length > 0) {... */\n    tag_159:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mload(0x40)\n      shl(0xe1, 0x0a12f521)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":6225:6242  FailedInnerCall() */\n      dup2\n      mstore\n      0x04\n      swap1\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4793:5201  if (!success) {... */\n    tag_157:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      dup2\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5067  returndata.length == 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n      dup1\n      tag_161\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4793:5201  if (!success) {... */\n    tag_162:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5041:5160  if (returndata.length == 0 && target.code.length == 0) {... */\n      tag_163\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5173:5190  return returndata */\n      pop\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5041:5160  if (returndata.length == 0 && target.code.length == 0) {... */\n    tag_163:\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mload(0x40)\n      shl(0xe0, 0x9996b315)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      dup2\n      mstore\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      swap1\n      swap2\n      and\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      0x04\n      dup3\n      add\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      mstore\n      0x24\n      swap1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5121:5145  AddressEmptyCode(target) */\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n    tag_161:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5071:5089  target.code.length */\n      pop\n      dup1\n      extcodesize\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5071:5094  target.code.length == 0 */\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5045:5094  returndata.length == 0 && target.code.length == 0 */\n      jump(tag_162)\n        /* \"contracts/TokenPaymentSplitter.sol\":6436:6678  function _pendingPayment(... */\n    tag_12:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/TokenPaymentSplitter.sol\":6621:6628  _shares */\n      0x02\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n      0x20\n      mstore\n      0x40\n      dup2\n      keccak256\n      sload\n      swap1\n      swap2\n      dup2\n      dup2\n      mul\n      swap2\n      dup2\n      iszero\n      swap2\n      dup4\n      div\n      eq\n      or\n      iszero\n      tag_165\n      jumpi\n      dup2\n      sload\n      swap1\n      dup2\n      iszero\n      tag_167\n      jumpi\n      div\n      swap2\n      dup3\n      sub\n      swap2\n      dup3\n      gt\n      tag_169\n      jumpi\n        /* \"contracts/TokenPaymentSplitter.sol\":6597:6671  return (totalReceived * _shares[account]) / _totalShares - alreadyReleased */\n      pop\n        /* \"contracts/TokenPaymentSplitter.sol\":6436:6678  function _pendingPayment(... */\n      swap1\n      jump\t// out\n        /* \"contracts/TokenPaymentSplitter.sol\":7330:7524  contract TokenPaymentSplitter is PaymentSplitter {... */\n    tag_169:\n      shl(0xe0, 0x4e487b71)\n      dup2\n      mstore\n      mstore(0x04, 0x11)\n      0x24\n      swap1\n      revert\n    tag_167:\n      shl(0xe0, 0x4e487b71)\n      dup4\n      mstore\n      mstore(0x04, 0x12)\n      0x24\n      dup4\n      revert\n    tag_165:\n      shl(0xe0, 0x4e487b71)\n      dup3\n      mstore\n      mstore(0x04, 0x11)\n      0x24\n      dup3\n      revert\n\n    auxdata: 0xa264697066735822122038a47e4989f620170e34cb8c744bf2df3b9eb6cc15663a120bc51ab8fdc6be3064736f6c63430008140033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"allocate_memory": {
									"entryPoint": 1027,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"array_allocation_size_array_address_dyn": {
									"entryPoint": 1085,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"memory_array_index_access_address_dyn": {
									"entryPoint": 1109,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								}
							},
							"generatedSources": [],
							"linkReferences": {},
							"object": "60406080815262000d1880380380620000188162000403565b9283398101918082840312620003de5781516001600160401b039390848111620003de5783019381601f86011215620003de57845193620000636200005d866200043d565b62000403565b9586958088526020808099019160051b83010191858311620003de578801905b828210620003e25750505085810151918211620003de57019080601f83011215620003de57815191620000ba6200005d846200043d565b92868085838152019160051b830101928311620003de5786809201905b838210620003ce575050505082518151036200036f578251156200032b575f5b83518110156200031c576001600160a01b0362000115828662000455565b511662000123828462000455565b518115620002c35780156200027f57815f526002808852855f205462000227576004908154680100000000000000008110156200021457600181018084558110156200020157825f52895f20018460018060a01b0319825416179055835f52885281865f20555f5490828201809211620001ee57505f558451918252868201527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac908490a15f198114620001da57600101620000f7565b634e487b7160e01b5f52601160045260245ffd5b601190634e487b7160e01b5f525260245ffd5b603283634e487b7160e01b5f525260245ffd5b604183634e487b7160e01b5f525260245ffd5b855162461bcd60e51b815260048101899052602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608490fd5b845162461bcd60e51b815260048101889052601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606490fd5b845162461bcd60e51b815260048101889052602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608490fd5b825161089990816200047f8239f35b815162461bcd60e51b815260048101859052601a60248201527f5061796d656e7453706c69747465723a206e6f207061796565730000000000006044820152606490fd5b815162461bcd60e51b815260048101859052603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b6064820152608490fd5b81518152908201908201620000d7565b5f80fd5b81516001600160a01b0381168103620003de57815290880190880162000083565b6040519190601f01601f191682016001600160401b038111838210176200042957604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b038111620004295760051b60200190565b80518210156200046a5760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfe60406080815260048036101561004d575b50361561001b575f80fd5b513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77090604090a1005b5f90813560e01c90816319165587146104395781633a98ef391461041c578163406072a9146103d357816348b75044146102605781638b83209b146101f3575080639852595c146101bb578063a3f8eace14610195578063c45ac05014610160578063ce7c2ac214610128578063d79779b2146100f05763e33b7de3036100105790346100ec57816003193601126100ec576020906001549051908152f35b5080fd5b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610118610523565b1681526005845220549051908152f35b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610150610523565b1681526002845220549051908152f35b5090346100ec57806003193601126100ec5760209061018e610180610523565b61018861053d565b906105dc565b9051908152f35b5090346100ec5760203660031901126100ec5760209061018e6101b6610523565b610574565b5090346100ec5760203660031901126100ec5760209181906001600160a01b036101e3610523565b1681526003845220549051908152f35b83833461025d57602036600319011261025d57823590835482101561024a57926020935260018060a01b03907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154169051908152f35b634e487b7160e01b815260328452602490fd5b80fd5b9050346100ec57826003193601126100ec5761027a610523565b61028261053d565b60018060a01b039283821693848652602090600282526102a6888820541515610689565b6102b084866105dc565b946102bc8615156106e4565b1694858752600582528787206102d3868254610553565b9055858752600682528787209087528152868620805485019055865163a9059cbb60e01b8183019081526001600160a01b03851660248301526044808301879052825261033e91889182916103296064826105a6565b5190828a5af1610337610744565b9087610783565b80519182151591826103aa575b50509050610393575093516001600160a01b039094168452602084015290917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a90604090a280f35b8551635274afe760e01b8152908101849052602490fd5b8092508193810103126103cf5701518015908115036103cb57805f8061034b565b8580fd5b8680fd5b8284346100ec57806003193601126100ec57806020926103f1610523565b6103f961053d565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b8284346100ec57816003193601126100ec57602091549051908152f35b8284346100ec5760203660031901126100ec5782356001600160a01b0381169081900361051f578083526002602052610476828420541515610689565b61047f81610574565b61048a8115156106e4565b61049681600154610553565b6001558184526003602052828420818154019055804710610509578380808084865af16104c1610744565b50156104f9577fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05693945082519182526020820152a180f35b8251630a12f52160e11b81528590fd5b825163cd78605960e01b81523081870152602490fd5b8280fd5b600435906001600160a01b038216820361053957565b5f80fd5b602435906001600160a01b038216820361053957565b9190820180921161056057565b634e487b7160e01b5f52601160045260245ffd5b6105a3906105854760015490610553565b6001600160a01b0382165f90815260036020526040902054916107e6565b90565b90601f8019910116810190811067ffffffffffffffff8211176105c857604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201529291906001600160a01b039081169060208086602481865afa95861561067e575f9661064d575b506106316105a39596845f526005835260405f205490610553565b925f526006815260405f209184165f525260405f2054916107e6565b958187813d8311610677575b61066381836105a6565b8101031261025d5750945194610631610616565b503d610659565b6040513d5f823e3d90fd5b1561069057565b60405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608490fd5b156106eb57565b60405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608490fd5b3d1561077e573d9067ffffffffffffffff82116105c85760405191610773601f8201601f1916602001846105a6565b82523d5f602084013e565b606090565b906107aa575080511561079857805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806107dd575b6107bb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156107b3565b6001600160a01b03165f90815260026020526040812054909181810291811591830414171561084f57815490811561083b5704918203918211610827575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fdfea264697066735822122038a47e4989f620170e34cb8c744bf2df3b9eb6cc15663a120bc51ab8fdc6be3064736f6c63430008140033",
							"opcodes": "PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH3 0xD18 DUP1 CODESIZE SUB DUP1 PUSH3 0x18 DUP2 PUSH3 0x403 JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP2 DUP1 DUP3 DUP5 SUB SLT PUSH3 0x3DE JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP4 SWAP1 DUP5 DUP2 GT PUSH3 0x3DE JUMPI DUP4 ADD SWAP4 DUP2 PUSH1 0x1F DUP7 ADD SLT ISZERO PUSH3 0x3DE JUMPI DUP5 MLOAD SWAP4 PUSH3 0x63 PUSH3 0x5D DUP7 PUSH3 0x43D JUMP JUMPDEST PUSH3 0x403 JUMP JUMPDEST SWAP6 DUP7 SWAP6 DUP1 DUP9 MSTORE PUSH1 0x20 DUP1 DUP1 SWAP10 ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP2 DUP6 DUP4 GT PUSH3 0x3DE JUMPI DUP9 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH3 0x3E2 JUMPI POP POP POP DUP6 DUP2 ADD MLOAD SWAP2 DUP3 GT PUSH3 0x3DE JUMPI ADD SWAP1 DUP1 PUSH1 0x1F DUP4 ADD SLT ISZERO PUSH3 0x3DE JUMPI DUP2 MLOAD SWAP2 PUSH3 0xBA PUSH3 0x5D DUP5 PUSH3 0x43D JUMP JUMPDEST SWAP3 DUP7 DUP1 DUP6 DUP4 DUP2 MSTORE ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP3 DUP4 GT PUSH3 0x3DE JUMPI DUP7 DUP1 SWAP3 ADD SWAP1 JUMPDEST DUP4 DUP3 LT PUSH3 0x3CE JUMPI POP POP POP POP DUP3 MLOAD DUP2 MLOAD SUB PUSH3 0x36F JUMPI DUP3 MLOAD ISZERO PUSH3 0x32B JUMPI PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH3 0x31C JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x115 DUP3 DUP7 PUSH3 0x455 JUMP JUMPDEST MLOAD AND PUSH3 0x123 DUP3 DUP5 PUSH3 0x455 JUMP JUMPDEST MLOAD DUP2 ISZERO PUSH3 0x2C3 JUMPI DUP1 ISZERO PUSH3 0x27F JUMPI DUP2 PUSH0 MSTORE PUSH1 0x2 DUP1 DUP9 MSTORE DUP6 PUSH0 KECCAK256 SLOAD PUSH3 0x227 JUMPI PUSH1 0x4 SWAP1 DUP2 SLOAD PUSH9 0x10000000000000000 DUP2 LT ISZERO PUSH3 0x214 JUMPI PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE DUP2 LT ISZERO PUSH3 0x201 JUMPI DUP3 PUSH0 MSTORE DUP10 PUSH0 KECCAK256 ADD DUP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE DUP4 PUSH0 MSTORE DUP9 MSTORE DUP2 DUP7 PUSH0 KECCAK256 SSTORE PUSH0 SLOAD SWAP1 DUP3 DUP3 ADD DUP1 SWAP3 GT PUSH3 0x1EE JUMPI POP PUSH0 SSTORE DUP5 MLOAD SWAP2 DUP3 MSTORE DUP7 DUP3 ADD MSTORE PUSH32 0x40C340F65E17194D14DDDDB073D3C9F888E3CB52B5AAE0C6C7706B4FBC905FAC SWAP1 DUP5 SWAP1 LOG1 PUSH0 NOT DUP2 EQ PUSH3 0x1DA JUMPI PUSH1 0x1 ADD PUSH3 0xF7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x11 SWAP1 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x32 DUP4 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x41 DUP4 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP6 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420616C7265616479 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x2068617320736861726573 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A20736861726573206172652030000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E742069732074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7A65726F2061646472657373 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x899 SWAP1 DUP2 PUSH3 0x47F DUP3 CODECOPY RETURN JUMPDEST DUP2 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206E6F20706179656573000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A2070617965657320616E642073686172 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0xCAE640D8CADCCEE8D040DAD2E6DAC2E8C6D PUSH1 0x73 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST DUP2 MLOAD DUP2 MSTORE SWAP1 DUP3 ADD SWAP1 DUP3 ADD PUSH3 0xD7 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH3 0x3DE JUMPI DUP2 MSTORE SWAP1 DUP9 ADD SWAP1 DUP9 ADD PUSH3 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x429 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x429 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH3 0x46A JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x4D JUMPI JUMPDEST POP CALLDATASIZE ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST MLOAD CALLER DUP2 MSTORE CALLVALUE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770 SWAP1 PUSH1 0x40 SWAP1 LOG1 STOP JUMPDEST PUSH0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x19165587 EQ PUSH2 0x439 JUMPI DUP2 PUSH4 0x3A98EF39 EQ PUSH2 0x41C JUMPI DUP2 PUSH4 0x406072A9 EQ PUSH2 0x3D3 JUMPI DUP2 PUSH4 0x48B75044 EQ PUSH2 0x260 JUMPI DUP2 PUSH4 0x8B83209B EQ PUSH2 0x1F3 JUMPI POP DUP1 PUSH4 0x9852595C EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xA3F8EACE EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0xC45AC050 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xCE7C2AC2 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD79779B2 EQ PUSH2 0xF0 JUMPI PUSH4 0xE33B7DE3 SUB PUSH2 0x10 JUMPI SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH1 0x1 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x118 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x150 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x2 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x180 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x53D JUMP JUMPDEST SWAP1 PUSH2 0x5DC JUMP JUMPDEST SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x1B6 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1E3 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x3 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0x25D JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x25D JUMPI DUP3 CALLDATALOAD SWAP1 DUP4 SLOAD DUP3 LT ISZERO PUSH2 0x24A JUMPI SWAP3 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x32 DUP5 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST SWAP1 POP CALLVALUE PUSH2 0xEC JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH2 0x27A PUSH2 0x523 JUMP JUMPDEST PUSH2 0x282 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 DUP3 AND SWAP4 DUP5 DUP7 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x2 DUP3 MSTORE PUSH2 0x2A6 DUP9 DUP9 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x2B0 DUP5 DUP7 PUSH2 0x5DC JUMP JUMPDEST SWAP5 PUSH2 0x2BC DUP7 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST AND SWAP5 DUP6 DUP8 MSTORE PUSH1 0x5 DUP3 MSTORE DUP8 DUP8 KECCAK256 PUSH2 0x2D3 DUP7 DUP3 SLOAD PUSH2 0x553 JUMP JUMPDEST SWAP1 SSTORE DUP6 DUP8 MSTORE PUSH1 0x6 DUP3 MSTORE DUP8 DUP8 KECCAK256 SWAP1 DUP8 MSTORE DUP2 MSTORE DUP7 DUP7 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE DUP7 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP8 SWAP1 MSTORE DUP3 MSTORE PUSH2 0x33E SWAP2 DUP9 SWAP2 DUP3 SWAP2 PUSH2 0x329 PUSH1 0x64 DUP3 PUSH2 0x5A6 JUMP JUMPDEST MLOAD SWAP1 DUP3 DUP11 GAS CALL PUSH2 0x337 PUSH2 0x744 JUMP JUMPDEST SWAP1 DUP8 PUSH2 0x783 JUMP JUMPDEST DUP1 MLOAD SWAP2 DUP3 ISZERO ISZERO SWAP2 DUP3 PUSH2 0x3AA JUMPI JUMPDEST POP POP SWAP1 POP PUSH2 0x393 JUMPI POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A SWAP1 PUSH1 0x40 SWAP1 LOG2 DUP1 RETURN JUMPDEST DUP6 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 DUP2 ADD SUB SLT PUSH2 0x3CF JUMPI ADD MLOAD DUP1 ISZERO SWAP1 DUP2 ISZERO SUB PUSH2 0x3CB JUMPI DUP1 PUSH0 DUP1 PUSH2 0x34B JUMP JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0x3F1 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x6 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x51F JUMPI DUP1 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH2 0x476 DUP3 DUP5 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x48A DUP2 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x496 DUP2 PUSH1 0x1 SLOAD PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 SSTORE DUP2 DUP5 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE DUP3 DUP5 KECCAK256 DUP2 DUP2 SLOAD ADD SWAP1 SSTORE DUP1 SELFBALANCE LT PUSH2 0x509 JUMPI DUP4 DUP1 DUP1 DUP1 DUP5 DUP7 GAS CALL PUSH2 0x4C1 PUSH2 0x744 JUMP JUMPDEST POP ISZERO PUSH2 0x4F9 JUMPI PUSH32 0xDF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056 SWAP4 SWAP5 POP DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 DUP1 RETURN JUMPDEST DUP3 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE DUP6 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH4 0xCD786059 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS DUP2 DUP8 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x560 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x5A3 SWAP1 PUSH2 0x585 SELFBALANCE PUSH1 0x1 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x5C8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 PUSH1 0x20 DUP1 DUP7 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP6 DUP7 ISZERO PUSH2 0x67E JUMPI PUSH0 SWAP7 PUSH2 0x64D JUMPI JUMPDEST POP PUSH2 0x631 PUSH2 0x5A3 SWAP6 SWAP7 DUP5 PUSH0 MSTORE PUSH1 0x5 DUP4 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST SWAP3 PUSH0 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 DUP5 AND PUSH0 MSTORE MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP6 DUP2 DUP8 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x677 JUMPI JUMPDEST PUSH2 0x663 DUP2 DUP4 PUSH2 0x5A6 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x25D JUMPI POP SWAP5 MLOAD SWAP5 PUSH2 0x631 PUSH2 0x616 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x690 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x736861726573 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x6EB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x191D59481C185E5B595B9D PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x77E JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x773 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x5A6 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x7AA JUMPI POP DUP1 MLOAD ISZERO PUSH2 0x798 JUMPI DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP2 MLOAD ISZERO DUP1 PUSH2 0x7DD JUMPI JUMPDEST PUSH2 0x7BB JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP DUP1 EXTCODESIZE ISZERO PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 DUP2 MUL SWAP2 DUP2 ISZERO SWAP2 DUP4 DIV EQ OR ISZERO PUSH2 0x84F JUMPI DUP2 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x83B JUMPI DIV SWAP2 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x827 JUMPI POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE LOG4 PUSH31 0x4989F620170E34CB8C744BF2DF3B9EB6CC15663A120BC51AB8FDC6BE306473 PUSH16 0x6C634300081400330000000000000000 ",
							"sourceMap": "7330:194:27:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1295:31;7330:194;;;;1399:17;7330:194;;-1:-1:-1;1497:3:27;7330:194;;1478:17;;;;;-1:-1:-1;;;;;1526:9:27;;;;:::i;:::-;7330:194;;1537:10;;;;:::i;:::-;7330:194;6942:21;;7330:194;;7030:11;;7330:194;;;-1:-1:-1;7330:194:27;7093:7;7330:194;;;;-1:-1:-1;7330:194:27;;;;7173:7;7330:194;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7330:194:27;;-1:-1:-1;7330:194:27;;;;;;;;;;;;;;;;-1:-1:-1;7330:194:27;;;;;-1:-1:-1;7330:194:27;;-1:-1:-1;7330:194:27;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;;;7292:28;;7330:194;;7292:28;-1:-1:-1;;7330:194:27;;;;;;1463:13;;7330:194;;;;-1:-1:-1;7330:194:27;;7173:7;7330:194;;-1:-1:-1;7330:194:27;;;;;;;-1:-1:-1;7330:194:27;;;-1:-1:-1;7330:194:27;;;;;;;-1:-1:-1;7330:194:27;;;-1:-1:-1;7330:194:27;;;;;;;-1:-1:-1;7330:194:27;;;-1:-1:-1;7330:194:27;;;;-1:-1:-1;;;7330:194:27;;7173:7;7330:194;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;-1:-1:-1;;;7330:194:27;;7173:7;7330:194;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;7173:7;7330:194;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;1478:17;;7330:194;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7330:194:27;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"abi_decode_address": {
									"entryPoint": 1341,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_decode_contract_IERC20": {
									"entryPoint": 1315,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"abi_encode_address_uint256": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"checked_add_uint256": {
									"entryPoint": 1363,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"extract_returndata": {
									"entryPoint": 1860,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"finalize_allocation": {
									"entryPoint": 1446,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"fun_pendingPayment": {
									"entryPoint": 2022,
									"id": 11568,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"fun_releasable": {
									"entryPoint": 1500,
									"id": 11430,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"fun_releasable_11395": {
									"entryPoint": 1396,
									"id": 11395,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"fun_verifyCallResultFromTarget": {
									"entryPoint": 1923,
									"id": 2771,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"require_helper_stringliteral": {
									"entryPoint": 1673,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"require_helper_stringliteral_57f8": {
									"entryPoint": 1764,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								}
							},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "60406080815260048036101561004d575b50361561001b575f80fd5b513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77090604090a1005b5f90813560e01c90816319165587146104395781633a98ef391461041c578163406072a9146103d357816348b75044146102605781638b83209b146101f3575080639852595c146101bb578063a3f8eace14610195578063c45ac05014610160578063ce7c2ac214610128578063d79779b2146100f05763e33b7de3036100105790346100ec57816003193601126100ec576020906001549051908152f35b5080fd5b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610118610523565b1681526005845220549051908152f35b5090346100ec5760203660031901126100ec5760209181906001600160a01b03610150610523565b1681526002845220549051908152f35b5090346100ec57806003193601126100ec5760209061018e610180610523565b61018861053d565b906105dc565b9051908152f35b5090346100ec5760203660031901126100ec5760209061018e6101b6610523565b610574565b5090346100ec5760203660031901126100ec5760209181906001600160a01b036101e3610523565b1681526003845220549051908152f35b83833461025d57602036600319011261025d57823590835482101561024a57926020935260018060a01b03907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154169051908152f35b634e487b7160e01b815260328452602490fd5b80fd5b9050346100ec57826003193601126100ec5761027a610523565b61028261053d565b60018060a01b039283821693848652602090600282526102a6888820541515610689565b6102b084866105dc565b946102bc8615156106e4565b1694858752600582528787206102d3868254610553565b9055858752600682528787209087528152868620805485019055865163a9059cbb60e01b8183019081526001600160a01b03851660248301526044808301879052825261033e91889182916103296064826105a6565b5190828a5af1610337610744565b9087610783565b80519182151591826103aa575b50509050610393575093516001600160a01b039094168452602084015290917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a90604090a280f35b8551635274afe760e01b8152908101849052602490fd5b8092508193810103126103cf5701518015908115036103cb57805f8061034b565b8580fd5b8680fd5b8284346100ec57806003193601126100ec57806020926103f1610523565b6103f961053d565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b8284346100ec57816003193601126100ec57602091549051908152f35b8284346100ec5760203660031901126100ec5782356001600160a01b0381169081900361051f578083526002602052610476828420541515610689565b61047f81610574565b61048a8115156106e4565b61049681600154610553565b6001558184526003602052828420818154019055804710610509578380808084865af16104c1610744565b50156104f9577fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05693945082519182526020820152a180f35b8251630a12f52160e11b81528590fd5b825163cd78605960e01b81523081870152602490fd5b8280fd5b600435906001600160a01b038216820361053957565b5f80fd5b602435906001600160a01b038216820361053957565b9190820180921161056057565b634e487b7160e01b5f52601160045260245ffd5b6105a3906105854760015490610553565b6001600160a01b0382165f90815260036020526040902054916107e6565b90565b90601f8019910116810190811067ffffffffffffffff8211176105c857604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201529291906001600160a01b039081169060208086602481865afa95861561067e575f9661064d575b506106316105a39596845f526005835260405f205490610553565b925f526006815260405f209184165f525260405f2054916107e6565b958187813d8311610677575b61066381836105a6565b8101031261025d5750945194610631610616565b503d610659565b6040513d5f823e3d90fd5b1561069057565b60405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608490fd5b156106eb57565b60405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608490fd5b3d1561077e573d9067ffffffffffffffff82116105c85760405191610773601f8201601f1916602001846105a6565b82523d5f602084013e565b606090565b906107aa575080511561079857805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806107dd575b6107bb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156107b3565b6001600160a01b03165f90815260026020526040812054909181810291811591830414171561084f57815490811561083b5704918203918211610827575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fdfea264697066735822122038a47e4989f620170e34cb8c744bf2df3b9eb6cc15663a120bc51ab8fdc6be3064736f6c63430008140033",
							"opcodes": "PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x4D JUMPI JUMPDEST POP CALLDATASIZE ISZERO PUSH2 0x1B JUMPI PUSH0 DUP1 REVERT JUMPDEST MLOAD CALLER DUP2 MSTORE CALLVALUE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770 SWAP1 PUSH1 0x40 SWAP1 LOG1 STOP JUMPDEST PUSH0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x19165587 EQ PUSH2 0x439 JUMPI DUP2 PUSH4 0x3A98EF39 EQ PUSH2 0x41C JUMPI DUP2 PUSH4 0x406072A9 EQ PUSH2 0x3D3 JUMPI DUP2 PUSH4 0x48B75044 EQ PUSH2 0x260 JUMPI DUP2 PUSH4 0x8B83209B EQ PUSH2 0x1F3 JUMPI POP DUP1 PUSH4 0x9852595C EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xA3F8EACE EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0xC45AC050 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xCE7C2AC2 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xD79779B2 EQ PUSH2 0xF0 JUMPI PUSH4 0xE33B7DE3 SUB PUSH2 0x10 JUMPI SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH1 0x1 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x118 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x5 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x150 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x2 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x180 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x53D JUMP JUMPDEST SWAP1 PUSH2 0x5DC JUMP JUMPDEST SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP1 PUSH2 0x18E PUSH2 0x1B6 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST POP SWAP1 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1E3 PUSH2 0x523 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x3 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0x25D JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x25D JUMPI DUP3 CALLDATALOAD SWAP1 DUP4 SLOAD DUP3 LT ISZERO PUSH2 0x24A JUMPI SWAP3 PUSH1 0x20 SWAP4 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x32 DUP5 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST SWAP1 POP CALLVALUE PUSH2 0xEC JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH2 0x27A PUSH2 0x523 JUMP JUMPDEST PUSH2 0x282 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 DUP3 AND SWAP4 DUP5 DUP7 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x2 DUP3 MSTORE PUSH2 0x2A6 DUP9 DUP9 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x2B0 DUP5 DUP7 PUSH2 0x5DC JUMP JUMPDEST SWAP5 PUSH2 0x2BC DUP7 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST AND SWAP5 DUP6 DUP8 MSTORE PUSH1 0x5 DUP3 MSTORE DUP8 DUP8 KECCAK256 PUSH2 0x2D3 DUP7 DUP3 SLOAD PUSH2 0x553 JUMP JUMPDEST SWAP1 SSTORE DUP6 DUP8 MSTORE PUSH1 0x6 DUP3 MSTORE DUP8 DUP8 KECCAK256 SWAP1 DUP8 MSTORE DUP2 MSTORE DUP7 DUP7 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE DUP7 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP8 SWAP1 MSTORE DUP3 MSTORE PUSH2 0x33E SWAP2 DUP9 SWAP2 DUP3 SWAP2 PUSH2 0x329 PUSH1 0x64 DUP3 PUSH2 0x5A6 JUMP JUMPDEST MLOAD SWAP1 DUP3 DUP11 GAS CALL PUSH2 0x337 PUSH2 0x744 JUMP JUMPDEST SWAP1 DUP8 PUSH2 0x783 JUMP JUMPDEST DUP1 MLOAD SWAP2 DUP3 ISZERO ISZERO SWAP2 DUP3 PUSH2 0x3AA JUMPI JUMPDEST POP POP SWAP1 POP PUSH2 0x393 JUMPI POP SWAP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH32 0x3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A SWAP1 PUSH1 0x40 SWAP1 LOG2 DUP1 RETURN JUMPDEST DUP6 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 DUP2 ADD SUB SLT PUSH2 0x3CF JUMPI ADD MLOAD DUP1 ISZERO SWAP1 DUP2 ISZERO SUB PUSH2 0x3CB JUMPI DUP1 PUSH0 DUP1 PUSH2 0x34B JUMP JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0x3F1 PUSH2 0x523 JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x6 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xEC JUMPI PUSH1 0x20 SWAP2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0xEC JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xEC JUMPI DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x51F JUMPI DUP1 DUP4 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH2 0x476 DUP3 DUP5 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x689 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x48A DUP2 ISZERO ISZERO PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x496 DUP2 PUSH1 0x1 SLOAD PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 SSTORE DUP2 DUP5 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE DUP3 DUP5 KECCAK256 DUP2 DUP2 SLOAD ADD SWAP1 SSTORE DUP1 SELFBALANCE LT PUSH2 0x509 JUMPI DUP4 DUP1 DUP1 DUP1 DUP5 DUP7 GAS CALL PUSH2 0x4C1 PUSH2 0x744 JUMP JUMPDEST POP ISZERO PUSH2 0x4F9 JUMPI PUSH32 0xDF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056 SWAP4 SWAP5 POP DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 DUP1 RETURN JUMPDEST DUP3 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE DUP6 SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH4 0xCD786059 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS DUP2 DUP8 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x539 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x560 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x5A3 SWAP1 PUSH2 0x585 SELFBALANCE PUSH1 0x1 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x5C8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 PUSH1 0x20 DUP1 DUP7 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP6 DUP7 ISZERO PUSH2 0x67E JUMPI PUSH0 SWAP7 PUSH2 0x64D JUMPI JUMPDEST POP PUSH2 0x631 PUSH2 0x5A3 SWAP6 SWAP7 DUP5 PUSH0 MSTORE PUSH1 0x5 DUP4 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x553 JUMP JUMPDEST SWAP3 PUSH0 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 DUP5 AND PUSH0 MSTORE MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP6 DUP2 DUP8 DUP2 RETURNDATASIZE DUP4 GT PUSH2 0x677 JUMPI JUMPDEST PUSH2 0x663 DUP2 DUP4 PUSH2 0x5A6 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x25D JUMPI POP SWAP5 MLOAD SWAP5 PUSH2 0x631 PUSH2 0x616 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x690 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x736861726573 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x6EB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x191D59481C185E5B595B9D PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x77E JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x773 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x5A6 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x7AA JUMPI POP DUP1 MLOAD ISZERO PUSH2 0x798 JUMPI DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 SWAP1 REVERT JUMPDEST DUP2 MLOAD ISZERO DUP1 PUSH2 0x7DD JUMPI JUMPDEST PUSH2 0x7BB JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST POP DUP1 EXTCODESIZE ISZERO PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 DUP2 MUL SWAP2 DUP2 ISZERO SWAP2 DUP4 DIV EQ OR ISZERO PUSH2 0x84F JUMPI DUP2 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x83B JUMPI DIV SWAP2 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x827 JUMPI POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE LOG4 PUSH31 0x4989F620170E34CB8C744BF2DF3B9EB6CC15663A120BC51AB8FDC6BE306473 PUSH16 0x6C634300081400330000000000000000 ",
							"sourceMap": "7330:194:27:-:0;;;;;;;;;;;-1:-1:-1;7330:194:27;;;;;;;;;;735:10:16;7330:194:27;;2157:9;7330:194;;;;2127:40;;7330:194;;2127:40;7330:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2502:14;7330:194;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;-1:-1:-1;;;;;7330:194:27;;:::i;:::-;;;;2758:19;7330:194;;;;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;-1:-1:-1;;;;;7330:194:27;;:::i;:::-;;;;2957:7;7330:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;-1:-1:-1;;;;;7330:194:27;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;5570:7;7330:194;;5562:71;7330:194;;;;5570:20;;5562:71;:::i;:::-;5662:26;;;;:::i;:::-;5707:12;5699:68;5707:12;;;5699:68;:::i;:::-;7330:194;;;;;6017:19;7330:194;;;;;6017:37;7330:194;;;6017:37;:::i;:::-;7330:194;;;;;6088:14;7330:194;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1412:43:8;;;;;;-1:-1:-1;;;;;7330:194:27;;;1412:43:8;;7330:194:27;;;;;;;;1412:43:8;;3510:55:14;;7330:194:27;;;;1412:43:8;7330:194:27;;1412:43:8;:::i;:::-;3462:31:14;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;7330:194:27;;4551:22:8;;;;:57;;;;7330:194:27;4547:135:8;;;;;;-1:-1:-1;7330:194:27;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;;;6212:45;;7330:194;;6212:45;7330:194;;4547:135:8;7330:194:27;;-1:-1:-1;;;4631:40:8;;;;;7330:194:27;;;;;4631:40:8;4551:57;4578:30;;;;;;;7330:194:27;;;;4578:30:8;7330:194:27;;;;;;;;;4551:57:8;;;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;7330:194:27;;;;;3440:14;7330:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7330:194:27;;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;;;;;;4648:7;7330:194;;4640:71;7330:194;;;;4648:20;;4640:71;:::i;:::-;4740:19;;;:::i;:::-;4770:68;4778:12;;;4770:68;:::i;:::-;5029:25;7330:194;;;5029:25;:::i;:::-;7330:194;;;;;;;;;;;;;;;;;1616:21:14;;:30;1612:109;;1750:33;;;;;;;;;;:::i;:::-;;1797:8;1793:63;;5188:33:27;7330:194;;;;;;;;;;;;5188:33;7330:194;;1793:63:14;7330:194:27;;-1:-1:-1;;;1828:17:14;;7330:194:27;;1828:17:14;1612:109;7330:194:27;;-1:-1:-1;;;1669:41:14;;1624:4;1669:41;;;7330:194:27;;;1669:41:14;7330:194:27;;;;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;7330:194:27;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3746:222;3903:58;3746:222;3847:39;:21;2502:14;7330:194;3847:39;;:::i;:::-;-1:-1:-1;;;;;7330:194:27;;-1:-1:-1;7330:194:27;;;3156:9;7330:194;;;;;;;3903:58;:::i;:::-;3746:222;:::o;7330:194::-;;1412:43:8;;;7330:194:27;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4122:257;7330:194;;-1:-1:-1;;;4237:30:27;;4261:4;4237:30;;;7330:194;;4122:257;;-1:-1:-1;;;;;7330:194:27;;;;4237:30;;7330:194;;;;4237:30;;;;;;;-1:-1:-1;4237:30:27;;;4122:257;7330:194;4237:53;4307:65;7330:194;;;-1:-1:-1;7330:194:27;2758:19;7330:194;;;-1:-1:-1;7330:194:27;;4237:53;;:::i;:::-;7330:194;-1:-1:-1;7330:194:27;3440:14;7330:194;;;-1:-1:-1;7330:194:27;;;;-1:-1:-1;7330:194:27;;;-1:-1:-1;7330:194:27;;4307:65;;:::i;4237:30::-;;;;;;;;;;;;;;;:::i;:::-;;;7330:194;;;;-1:-1:-1;7330:194:27;;;4237:53;:30;;;;;;;;7330:194;;;-1:-1:-1;7330:194:27;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;1412:43:8;7330:194:27;;-1:-1:-1;;7330:194:27;;;;;:::i;:::-;;;;-1:-1:-1;7330:194:27;;;;:::o;:::-;;;:::o;4625:582:14:-;;4797:8;;-1:-1:-1;7330:194:27;;5874:21:14;:17;;6046:142;;;;;;5870:383;7330:194:27;;-1:-1:-1;;;6225:17:14;;;;;4793:408;7330:194:27;;5045:22:14;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;7330:194:27;;-1:-1:-1;;;5121:24:14;;-1:-1:-1;;;;;7330:194:27;;;5121:24:14;;;7330:194:27;;;5121:24:14;5045:49;5071:18;;;:23;5045:49;;6436:242:27;-1:-1:-1;;;;;7330:194:27;-1:-1:-1;7330:194:27;;;6621:7;7330:194;;;;;;-1:-1:-1;;7330:194:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6597:74;6436:242;:::o;7330:194::-;-1:-1:-1;;;7330:194:27;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;;;-1:-1:-1;;;7330:194:27;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "440200",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"payee(uint256)": "4525",
								"releasable(address)": "9202",
								"releasable(address,address)": "infinite",
								"release(address)": "infinite",
								"release(address,address)": "infinite",
								"released(address)": "2535",
								"released(address,address)": "2610",
								"shares(address)": "2601",
								"totalReleased()": "2488",
								"totalReleased(address)": "2623",
								"totalShares()": "2292"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "80"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSHSIZE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "CODESIZE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "CODECOPY",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP10",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "15"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "16"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "22"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "12"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "22"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "26"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "27"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "POP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1295,
									"end": 1326,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "29"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1399,
									"end": 1416,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "31"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 1497,
									"end": 1500,
									"name": "tag",
									"source": 27,
									"value": "33"
								},
								{
									"begin": 1497,
									"end": 1500,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "34"
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "36"
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 1526,
									"end": 1535,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "tag",
									"source": 27,
									"value": "36"
								},
								{
									"begin": 1526,
									"end": 1535,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "37"
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 1537,
									"end": 1547,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "tag",
									"source": 27,
									"value": "37"
								},
								{
									"begin": 1537,
									"end": 1547,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 6942,
									"end": 6963,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 6942,
									"end": 6963,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "38"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7030,
									"end": 7041,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7030,
									"end": 7041,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7093,
									"end": 7100,
									"name": "PUSH",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "42"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "10000000000000000"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "46"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP10",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "A0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "NOT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "OR",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "KECCAK256",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "48"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP7",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "PUSH",
									"source": 27,
									"value": "40C340F65E17194D14DDDDB073D3C9F888E3CB52B5AAE0C6C7706B4FBC905FAC"
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7292,
									"end": 7320,
									"name": "LOG1",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "EQ",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "50"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 1463,
									"end": 1476,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "33"
								},
								{
									"begin": 1463,
									"end": 1476,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "50"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "48"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "11"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "46"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "41"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "42"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP10",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "2B"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206163636F756E7420616C7265616479"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "2068617320736861726573"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A8"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1D"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A20736861726573206172652030000000"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "38"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP5",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7173,
									"end": 7180,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "2C"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206163636F756E742069732074686520"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "7A65726F2061646472657373"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "tag",
									"source": 27,
									"value": "34"
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 1478,
									"end": 1495,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH #[$]",
									"source": 27,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [$]",
									"source": 27,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "CODECOPY",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "RETURN",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "31"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1A"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A206E6F20706179656573000000000000"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "29"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "461BCD"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "E5"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP6",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5061796D656E7453706C69747465723A2070617965657320616E642073686172"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "44"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "CAE640D8CADCCEE8D040DAD2E6DAC2E8C6D"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "73"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "64"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "84"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "27"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "26"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "16"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "A0"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SUB",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP9",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "15"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "1"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "1F"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1F"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "NOT",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "AND",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP4",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "OR",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "40"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "41"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "2"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "1"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "PUSH",
									"source": -1,
									"value": "40"
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SHL",
									"source": -1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "SUB",
									"source": -1
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "GT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "54"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "3"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MLOAD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "DUP3",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "LT",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ISZERO",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH [tag]",
									"source": 27,
									"value": "58"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPI",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "20"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP2",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "5"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "ADD",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SWAP1",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "tag",
									"source": 27,
									"value": "58"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "JUMPDEST",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4E487B71"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "E0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "SHL",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "32"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "4"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "MSTORE",
									"source": 27
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "24"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "PUSH",
									"source": 27,
									"value": "0"
								},
								{
									"begin": 7330,
									"end": 7524,
									"name": "REVERT",
									"source": 27
								}
							],
							".data": {
								"0": {
									".auxdata": "a264697066735822122038a47e4989f620170e34cb8c744bf2df3b9eb6cc15663a120bc51ab8fdc6be3064736f6c63430008140033",
									".code": [
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "80"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "13"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "tag",
											"source": -1,
											"value": "14"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "JUMPDEST",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "15"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "15"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 735,
											"end": 745,
											"name": "CALLER",
											"source": 16
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2157,
											"end": 2166,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "PUSH",
											"source": 27,
											"value": "6EF95F06320E7A25A04A175CA677B7052BDD97131872C2192525A629F51BE770"
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 2127,
											"end": 2167,
											"name": "LOG1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "STOP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "13"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SHR",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "19165587"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "18"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3A98EF39"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "406072A9"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "22"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "48B75044"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "8B83209B"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "9852595C"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "28"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "A3F8EACE"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "30"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "C45AC050"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "CE7C2AC2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "34"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "D79779B2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "36"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "E33B7DE3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "14"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 2502,
											"end": 2516,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "36"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "48"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "48"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2758,
											"end": 2777,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "34"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "53"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "53"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2957,
											"end": 2964,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "59"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "59"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "30"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "58"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "66"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "66"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "28"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "71"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "71"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "76"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "A0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "76"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "32"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "82"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "82"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "83"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "83"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "A0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5577,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5590,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5570,
											"end": 5590,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 5562,
											"end": 5633,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "tag",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 5562,
											"end": 5633,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "85"
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 5662,
											"end": 5688,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "tag",
											"source": 27,
											"value": "85"
										},
										{
											"begin": 5662,
											"end": 5688,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "86"
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5707,
											"end": 5719,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 5699,
											"end": 5767,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "tag",
											"source": 27,
											"value": "86"
										},
										{
											"begin": 5699,
											"end": 5767,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6036,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "87"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 6017,
											"end": 6054,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "tag",
											"source": 27,
											"value": "87"
										},
										{
											"begin": 6017,
											"end": 6054,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6088,
											"end": 6102,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A9059CBB"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP4",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP4",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "88"
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "SWAP2",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP9",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "89"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "6"
										},
										{
											"begin": 1412,
											"end": 1455,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "tag",
											"source": 8,
											"value": "89"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "MLOAD",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "DUP3",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "DUP11",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "GAS",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "CALL",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "91"
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "10"
										},
										{
											"begin": 3462,
											"end": 3493,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "tag",
											"source": 14,
											"value": "91"
										},
										{
											"begin": 3462,
											"end": 3493,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "DUP8",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "11"
										},
										{
											"begin": 3510,
											"end": 3565,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "tag",
											"source": 14,
											"value": "88"
										},
										{
											"begin": 3510,
											"end": 3565,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "SWAP2",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "ISZERO",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4573,
											"name": "ISZERO",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "SWAP2",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP3",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "92"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMPI",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "93"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "94"
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "JUMPI",
											"source": 8
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "PUSH",
											"source": 27,
											"value": "3BE5B7A71E84ED12875D241991C70855AC5817D847039E17A9D895C1CEB0F18A"
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 6212,
											"end": 6257,
											"name": "LOG2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "tag",
											"source": 8,
											"value": "94"
										},
										{
											"begin": 4547,
											"end": 4682,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "5274AFE7"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "MSTORE",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "SWAP1",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4631,
											"end": 4671,
											"name": "REVERT",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "tag",
											"source": 8,
											"value": "92"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMPDEST",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "SWAP3",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "POP",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "SWAP4",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "DUP2",
											"source": 8
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "97"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4578,
											"end": 4608,
											"name": "ADD",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "99"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH",
											"source": 8,
											"value": "0"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "PUSH [tag]",
											"source": 8,
											"value": "93"
										},
										{
											"begin": 4551,
											"end": 4608,
											"name": "JUMP",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "99"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "97"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "22"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "105"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "105"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "106"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "106"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3440,
											"end": 3454,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "NOT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "18"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLVALUE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "3"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "42"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "115"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4655,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "117"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4668,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4648,
											"end": 4668,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 4640,
											"end": 4711,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "tag",
											"source": 27,
											"value": "117"
										},
										{
											"begin": 4640,
											"end": 4711,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "118"
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 4740,
											"end": 4759,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "tag",
											"source": 27,
											"value": "118"
										},
										{
											"begin": 4740,
											"end": 4759,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "119"
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4778,
											"end": 4790,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 4770,
											"end": 4838,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "tag",
											"source": 27,
											"value": "119"
										},
										{
											"begin": 4770,
											"end": 4838,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "120"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 5029,
											"end": 5054,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "tag",
											"source": 27,
											"value": "120"
										},
										{
											"begin": 5029,
											"end": 5054,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SSTORE",
											"source": 27
										},
										{
											"begin": 1616,
											"end": 1637,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1616,
											"end": 1637,
											"name": "SELFBALANCE",
											"source": 14
										},
										{
											"begin": 1616,
											"end": 1646,
											"name": "LT",
											"source": 14
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "121"
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP4",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP5",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "DUP7",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "GAS",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "CALL",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "123"
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "10"
										},
										{
											"begin": 1750,
											"end": 1783,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "tag",
											"source": 14,
											"value": "123"
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 1750,
											"end": 1783,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 1797,
											"end": 1805,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "124"
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 5188,
											"end": 5221,
											"name": "PUSH",
											"source": 27,
											"value": "DF20FD1E76BC69D672E4814FAFB2C449BBA3A5369D8359ADF9E05E6FDE87B056"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 5188,
											"end": 5221,
											"name": "LOG1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURN",
											"source": 27
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "tag",
											"source": 14,
											"value": "124"
										},
										{
											"begin": 1793,
											"end": 1856,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A12F521"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1828,
											"end": 1845,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "tag",
											"source": 14,
											"value": "121"
										},
										{
											"begin": 1612,
											"end": 1721,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "CD786059"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 1624,
											"end": 1628,
											"name": "ADDRESS",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "DUP8",
											"source": 14
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1669,
											"end": 1710,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "115"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "CALLDATALOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "126"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "130"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "130"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4E487B71"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "tag",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "133"
										},
										{
											"begin": 3847,
											"end": 3868,
											"name": "SELFBALANCE",
											"source": 27
										},
										{
											"begin": 2502,
											"end": 2516,
											"name": "PUSH",
											"source": 27,
											"value": "1"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 3847,
											"end": 3886,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "tag",
											"source": 27,
											"value": "133"
										},
										{
											"begin": 3847,
											"end": 3886,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3156,
											"end": 3165,
											"name": "PUSH",
											"source": 27,
											"value": "3"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 3903,
											"end": 3961,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "tag",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 3903,
											"end": 3961,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 3746,
											"end": 3968,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH",
											"source": 8,
											"value": "1F"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "DUP1",
											"source": 8
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "NOT",
											"source": 8
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "LT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "OR",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4E487B71"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "E0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SHL",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "41"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "tag",
											"source": 27,
											"value": "7"
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "70A08231"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 4261,
											"end": 4265,
											"name": "ADDRESS",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "GAS",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "STATICCALL",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "136"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP7",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "138"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "tag",
											"source": 27,
											"value": "139"
										},
										{
											"begin": 4122,
											"end": 4379,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "132"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP7",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 2758,
											"end": 2777,
											"name": "PUSH",
											"source": 27,
											"value": "5"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 4237,
											"end": 4290,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "tag",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP3",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 3440,
											"end": 3454,
											"name": "PUSH",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 4307,
											"end": 4372,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 4307,
											"end": 4372,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "138"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "SWAP6",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP8",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "142"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "143"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "144"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 4237,
											"end": 4267,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "144"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "74"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP5",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4290,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "140"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "139"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "142"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "143"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "tag",
											"source": 27,
											"value": "136"
										},
										{
											"begin": 4237,
											"end": 4267,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATACOPY",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "8"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "147"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "147"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "26"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "5061796D656E7453706C69747465723A206163636F756E7420686173206E6F20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "736861726573"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "D0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "9"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "149"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "149"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "461BCD"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E5"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "2B"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "5061796D656E7453706C69747465723A206163636F756E74206973206E6F7420"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "44"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "191D59481C185E5B595B9D"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "AA"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "64"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "84"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "10"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "151"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "134"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "155"
										},
										{
											"begin": 1412,
											"end": 1455,
											"name": "PUSH",
											"source": 8,
											"value": "1F"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1F"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "NOT",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "6"
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "155"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATASIZE",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP5",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ADD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "RETURNDATACOPY",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "151"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "60"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "tag",
											"source": 14,
											"value": "11"
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 4625,
											"end": 5207,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 4797,
											"end": 4805,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "157"
										},
										{
											"begin": 4797,
											"end": 4805,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 5874,
											"end": 5895,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5874,
											"end": 5891,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "159"
										},
										{
											"begin": 5874,
											"end": 5891,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "MLOAD",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "PUSH",
											"source": 14,
											"value": "20"
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 6046,
											"end": 6188,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 5870,
											"end": 6253,
											"name": "tag",
											"source": 14,
											"value": "159"
										},
										{
											"begin": 5870,
											"end": 6253,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A12F521"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "PUSH",
											"source": 14,
											"value": "4"
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 6225,
											"end": 6242,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "tag",
											"source": 14,
											"value": "157"
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": 5045,
											"end": 5067,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "161"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "tag",
											"source": 14,
											"value": "162"
										},
										{
											"begin": 4793,
											"end": 5201,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "163"
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "JUMPI",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"name": "SWAP1",
											"source": 14
										},
										{
											"begin": 5173,
											"end": 5190,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "tag",
											"source": 14,
											"value": "163"
										},
										{
											"begin": 5041,
											"end": 5160,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "9996B315"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "DUP2",
											"source": 14
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "MSTORE",
											"source": 14
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "PUSH",
											"source": 14,
											"value": "4"
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "DUP3",
											"source": 14
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "ADD",
											"source": 14
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 5121,
											"end": 5145,
											"name": "REVERT",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "tag",
											"source": 14,
											"value": "161"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMPDEST",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "POP",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "DUP1",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5089,
											"name": "EXTCODESIZE",
											"source": 14
										},
										{
											"begin": 5071,
											"end": 5094,
											"name": "ISZERO",
											"source": 14
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "PUSH [tag]",
											"source": 14,
											"value": "162"
										},
										{
											"begin": 5045,
											"end": 5094,
											"name": "JUMP",
											"source": 14
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "tag",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "AND",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "0"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 6621,
											"end": 6628,
											"name": "PUSH",
											"source": 27,
											"value": "2"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "20"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "40"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "KECCAK256",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP1",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SWAP2",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MUL",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DIV",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "EQ",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "OR",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "165"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SLOAD",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "ISZERO",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "167"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DIV",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SUB",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "GT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH [tag]",
											"source": 27,
											"value": "169"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPI",
											"source": 27
										},
										{
											"begin": 6597,
											"end": 6671,
											"name": "POP",
											"source": 27
										},
										{
											"begin": 6436,
											"end": 6678,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 6436,
											"end": 6678,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "169"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP2",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "SWAP1",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "167"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "12"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP4",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "tag",
											"source": 27,
											"value": "165"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "JUMPDEST",
											"source": 27
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "4E487B71"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "E0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "11"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "4"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "MSTORE",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "PUSH",
											"source": 27,
											"value": "24"
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "DUP3",
											"source": 27
										},
										{
											"begin": 7330,
											"end": 7524,
											"name": "REVERT",
											"source": 27
										}
									]
								}
							},
							"sourceList": [
								"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
								"@openzeppelin/contracts/access/AccessControl.sol",
								"@openzeppelin/contracts/access/IAccessControl.sol",
								"@openzeppelin/contracts/access/Ownable.sol",
								"@openzeppelin/contracts/interfaces/IERC2981.sol",
								"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
								"@openzeppelin/contracts/token/ERC20/IERC20.sol",
								"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
								"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
								"@openzeppelin/contracts/token/ERC721/ERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721.sol",
								"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
								"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
								"@openzeppelin/contracts/token/common/ERC2981.sol",
								"@openzeppelin/contracts/utils/Address.sol",
								"@openzeppelin/contracts/utils/Base64.sol",
								"@openzeppelin/contracts/utils/Context.sol",
								"@openzeppelin/contracts/utils/Strings.sol",
								"@openzeppelin/contracts/utils/introspection/ERC165.sol",
								"@openzeppelin/contracts/utils/introspection/IERC165.sol",
								"@openzeppelin/contracts/utils/math/Math.sol",
								"@openzeppelin/contracts/utils/math/SignedMath.sol",
								"abdk-libraries-solidity/ABDKMathQuad.sol",
								"contracts/TicketContract.sol",
								"contracts/TixSellEventLibrary.sol",
								"contracts/TixSellLibraries.sol",
								"contracts/TixSellReservationLibrary.sol",
								"contracts/TokenPaymentSplitter.sol",
								"contracts/factories/ITicketReservationFactory.sol",
								"contracts/interfaces/IEventContract.sol",
								"contracts/interfaces/ITicketReservationContract.sol",
								"contracts/interfaces/ITicketTypeContract.sol",
								"contracts/interfaces/ITixSellNftTemplate.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {
							"payee(uint256)": "8b83209b",
							"releasable(address)": "a3f8eace",
							"releasable(address,address)": "c45ac050",
							"release(address)": "19165587",
							"release(address,address)": "48b75044",
							"released(address)": "9852595c",
							"released(address,address)": "406072a9",
							"shares(address)": "ce7c2ac2",
							"totalReleased()": "e33b7de3",
							"totalReleased(address)": "d79779b2",
							"totalShares()": "3a98ef39"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"payees\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"payee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"payee(uint256)\":{\"details\":\"Getter for the address of the payee number `index`.\"},\"releasable(address)\":{\"details\":\"Getter for the amount of payee's releasable Ether.\"},\"releasable(address,address)\":{\"details\":\"Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract.\"},\"release(address)\":{\"details\":\"Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals.\"},\"release(address,address)\":{\"details\":\"Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract.\"},\"released(address)\":{\"details\":\"Getter for the amount of Ether already released to a payee.\"},\"released(address,address)\":{\"details\":\"Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract.\"},\"shares(address)\":{\"details\":\"Getter for the amount of shares held by an account.\"},\"totalReleased()\":{\"details\":\"Getter for the total amount of Ether already released.\"},\"totalReleased(address)\":{\"details\":\"Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract.\"},\"totalShares()\":{\"details\":\"Getter for the total shares held by payees.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TokenPaymentSplitter.sol\":\"TokenPaymentSplitter\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"contracts/TokenPaymentSplitter.sol\":{\"keccak256\":\"0x79717f00c12ed231f95b55ed0f2373347a2faca911e8cc1284a4807836d5205b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99fa2c12dd8a63e6ed3f23d50d3934cf843d42b6e77821d1b51d500a9fcdf8a8\",\"dweb:/ipfs/QmRWsQSQM9X58Sxa471ramzCD4uLKSLdfoBdr3FwTtQdpv\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 11191,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_totalShares",
								"offset": 0,
								"slot": "0",
								"type": "t_uint256"
							},
							{
								"astId": 11193,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_totalReleased",
								"offset": 0,
								"slot": "1",
								"type": "t_uint256"
							},
							{
								"astId": 11197,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_shares",
								"offset": 0,
								"slot": "2",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 11201,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_released",
								"offset": 0,
								"slot": "3",
								"type": "t_mapping(t_address,t_uint256)"
							},
							{
								"astId": 11204,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_payees",
								"offset": 0,
								"slot": "4",
								"type": "t_array(t_address)dyn_storage"
							},
							{
								"astId": 11209,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_erc20TotalReleased",
								"offset": 0,
								"slot": "5",
								"type": "t_mapping(t_contract(IERC20)807,t_uint256)"
							},
							{
								"astId": 11216,
								"contract": "contracts/TokenPaymentSplitter.sol:TokenPaymentSplitter",
								"label": "_erc20Released",
								"offset": 0,
								"slot": "6",
								"type": "t_mapping(t_contract(IERC20)807,t_mapping(t_address,t_uint256))"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_array(t_address)dyn_storage": {
								"base": "t_address",
								"encoding": "dynamic_array",
								"label": "address[]",
								"numberOfBytes": "32"
							},
							"t_contract(IERC20)807": {
								"encoding": "inplace",
								"label": "contract IERC20",
								"numberOfBytes": "20"
							},
							"t_mapping(t_address,t_uint256)": {
								"encoding": "mapping",
								"key": "t_address",
								"label": "mapping(address => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_mapping(t_contract(IERC20)807,t_mapping(t_address,t_uint256))": {
								"encoding": "mapping",
								"key": "t_contract(IERC20)807",
								"label": "mapping(contract IERC20 => mapping(address => uint256))",
								"numberOfBytes": "32",
								"value": "t_mapping(t_address,t_uint256)"
							},
							"t_mapping(t_contract(IERC20)807,t_uint256)": {
								"encoding": "mapping",
								"key": "t_contract(IERC20)807",
								"label": "mapping(contract IERC20 => uint256)",
								"numberOfBytes": "32",
								"value": "t_uint256"
							},
							"t_uint256": {
								"encoding": "inplace",
								"label": "uint256",
								"numberOfBytes": "32"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/factories/ITicketReservationFactory.sol": {
				"ITicketReservationFactory": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address[]",
									"name": "_admins",
									"type": "address[]"
								},
								{
									"internalType": "address",
									"name": "_eventAddress",
									"type": "address"
								}
							],
							"name": "deployTicketReservationContract",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"deployTicketReservationContract(address[],address)": "3299e865"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_eventAddress\",\"type\":\"address\"}],\"name\":\"deployTicketReservationContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/factories/ITicketReservationFactory.sol\":\"ITicketReservationFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/factories/ITicketReservationFactory.sol\":{\"keccak256\":\"0x9ae0e1da2df1d7591e2c4e75bf2dd62cc7c30f18cac17e6800f425a159a9a58d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fffca80b5ea1dce69109dc0c3bafde0a6aa56267df339f970a49a4f088ab77d2\",\"dweb:/ipfs/QmeRQ6dVu6gzHgcRW7kZRNEX5qFEmzww2agkPTano3jNDM\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/interfaces/IEventContract.sol": {
				"IEventContract": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_tokenId",
									"type": "uint256"
								}
							],
							"name": "addTicketToListOfTicketType",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "addTicketTypesNbTicketMinted",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getEvent",
							"outputs": [
								{
									"components": [
										{
											"internalType": "string",
											"name": "id",
											"type": "string"
										},
										{
											"internalType": "uint256",
											"name": "eventDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "duration",
											"type": "uint256"
										},
										{
											"internalType": "enum TixSellEventLibrary.EventType",
											"name": "typeEvent",
											"type": "uint8"
										},
										{
											"internalType": "string",
											"name": "name",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "description",
											"type": "string"
										},
										{
											"internalType": "bool",
											"name": "canceled",
											"type": "bool"
										},
										{
											"internalType": "uint96",
											"name": "royalty",
											"type": "uint96"
										}
									],
									"internalType": "struct TixSellEventLibrary.Event",
									"name": "",
									"type": "tuple"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								}
							],
							"name": "getListOfTicketForTicketType",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "getTicketTypeContract",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								}
							],
							"name": "getTicketTypesNbMinted",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_ticketContract",
									"type": "address"
								}
							],
							"name": "setTicketContract",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"addTicketToListOfTicketType(uint256,uint256)": "b382aed0",
							"addTicketTypesNbTicketMinted(uint256,uint256)": "47f6682b",
							"getEvent()": "bf819c20",
							"getListOfTicketForTicketType(uint256)": "e02ce4b0",
							"getTicketTypeContract()": "c1665499",
							"getTicketTypesNbMinted(uint256)": "1354dfa8",
							"setTicketContract(address)": "c0caa772"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"addTicketToListOfTicketType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addTicketTypesNbTicketMinted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEvent\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"id\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"eventDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"enum TixSellEventLibrary.EventType\",\"name\":\"typeEvent\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"uint96\",\"name\":\"royalty\",\"type\":\"uint96\"}],\"internalType\":\"struct TixSellEventLibrary.Event\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"}],\"name\":\"getListOfTicketForTicketType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTicketTypeContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"}],\"name\":\"getTicketTypesNbMinted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ticketContract\",\"type\":\"address\"}],\"name\":\"setTicketContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IEventContract.sol\":\"IEventContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellEventLibrary.sol\":{\"keccak256\":\"0x213f6a6adffbdaae40ca88f693d0b468061c2bff3c9e6c7dafb5ff5dc2d3b66b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f442850c805e04ad046a6c1ee0a61b1599b2775b796a304c672eba3122e4e3d\",\"dweb:/ipfs/QmetQwUGYXeNErgHGbDB5KmQnpzNA7eDtsYgsZFNcxuaqE\"]},\"contracts/interfaces/IEventContract.sol\":{\"keccak256\":\"0xe1802cfbfa4afb9683d529a171110e5039d61a3b160914512a758f7f545c55e2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://40713bfd734b2b9ae4e825a645875d9de21e4aec2e0dfa83a226cb4f549803ce\",\"dweb:/ipfs/QmdXScaSHUEbnYYE6cxKLFGKtHPD8HpXYr9mdu8Y8tDArT\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/interfaces/ITicketReservationContract.sol": {
				"ITicketReservationContract": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationNumber",
									"type": "string"
								}
							],
							"name": "burnReservation",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationNumber",
									"type": "string"
								}
							],
							"name": "cancelReservation",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationNumber",
									"type": "string"
								}
							],
							"name": "checkReservation",
							"outputs": [
								{
									"components": [
										{
											"internalType": "string",
											"name": "id",
											"type": "string"
										},
										{
											"internalType": "address",
											"name": "owner",
											"type": "address"
										},
										{
											"internalType": "uint256",
											"name": "reservationDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "expirationDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "amount",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "ticketTypeId",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "used",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "exists",
											"type": "bool"
										}
									],
									"internalType": "struct TixSellReservationLibrary.TicketReservation",
									"name": "",
									"type": "tuple"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "string",
									"name": "_reservationNumber",
									"type": "string"
								},
								{
									"internalType": "address",
									"name": "_owner",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_amount",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_existingBalance",
									"type": "uint256"
								}
							],
							"name": "createReservationNumber",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"burnReservation(string)": "83650320",
							"cancelReservation(string)": "99e4b8e1",
							"checkReservation(string)": "f8c373e4",
							"createReservationNumber(string,address,uint256,uint256,uint256)": "758ddfdd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationNumber\",\"type\":\"string\"}],\"name\":\"burnReservation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationNumber\",\"type\":\"string\"}],\"name\":\"cancelReservation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationNumber\",\"type\":\"string\"}],\"name\":\"checkReservation\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"id\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reservationDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"internalType\":\"struct TixSellReservationLibrary.TicketReservation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_reservationNumber\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_existingBalance\",\"type\":\"uint256\"}],\"name\":\"createReservationNumber\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITicketReservationContract.sol\":\"ITicketReservationContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellReservationLibrary.sol\":{\"keccak256\":\"0x46453ae5d95f3b639579bebbfd32939cdfd903d30d613a1648168576fb55799a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b9e33f45c65c735d47d307f730bd786d470535a033d079daf33dda90433f8904\",\"dweb:/ipfs/QmUWrtUCQgAVbN83Rf66vgo2bsX5SGjeKxQcebfWUpQADi\"]},\"contracts/interfaces/ITicketReservationContract.sol\":{\"keccak256\":\"0x9852cb31218119f03689cc94500a31fec14710398cc357786d35805631707531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52516dab24bb01e05dd14378e9ca716254229c6a4bb2ea7c44f57e73ff0072c3\",\"dweb:/ipfs/QmahdaG9FQ1mMFEhp7pxwZw1jhQ4hZCCWxFXBUjnNrS7x9\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/interfaces/ITicketTypeContract.sol": {
				"ITicketTypeContract": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_eventDate",
									"type": "uint256"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "id",
											"type": "uint256"
										},
										{
											"internalType": "uint32",
											"name": "maxTickets",
											"type": "uint32"
										},
										{
											"internalType": "uint32",
											"name": "maxTicketsPerUser",
											"type": "uint32"
										},
										{
											"internalType": "uint256",
											"name": "ticketPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingStartDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingEndDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "revealed",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "revealStartDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "sellable",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "maxSellablePrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "royaltySellable",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "earlyBid",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "discountPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "discountEndDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "templateId",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "fixAmount",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "freeDrink",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "priorityQueue",
											"type": "bool"
										},
										{
											"internalType": "string",
											"name": "name",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "hiddenuri",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "image",
											"type": "string"
										},
										{
											"components": [
												{
													"internalType": "string",
													"name": "gradient1Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "gradient2Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleOne",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleTwo",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "price",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "fontUrl",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketType",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "venue",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "svgUrl",
													"type": "string"
												}
											],
											"internalType": "struct TixSellLibrary.TicketDesignInfo",
											"name": "ticketDesignInfo",
											"type": "tuple"
										}
									],
									"internalType": "struct TixSellLibrary.TicketType",
									"name": "_ticketTypeData",
									"type": "tuple"
								}
							],
							"name": "createTicketType",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								}
							],
							"name": "deleteTicketType",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "fetchTicketsType",
							"outputs": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "id",
											"type": "uint256"
										},
										{
											"internalType": "uint32",
											"name": "maxTickets",
											"type": "uint32"
										},
										{
											"internalType": "uint32",
											"name": "maxTicketsPerUser",
											"type": "uint32"
										},
										{
											"internalType": "uint256",
											"name": "ticketPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingStartDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingEndDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "revealed",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "revealStartDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "sellable",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "maxSellablePrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "royaltySellable",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "earlyBid",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "discountPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "discountEndDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "templateId",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "fixAmount",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "freeDrink",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "priorityQueue",
											"type": "bool"
										},
										{
											"internalType": "string",
											"name": "name",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "hiddenuri",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "image",
											"type": "string"
										},
										{
											"components": [
												{
													"internalType": "string",
													"name": "gradient1Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "gradient2Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleOne",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleTwo",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "price",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "fontUrl",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketType",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "venue",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "svgUrl",
													"type": "string"
												}
											],
											"internalType": "struct TixSellLibrary.TicketDesignInfo",
											"name": "ticketDesignInfo",
											"type": "tuple"
										}
									],
									"internalType": "struct TixSellLibrary.TicketType[]",
									"name": "",
									"type": "tuple[]"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_ticketTypeId",
									"type": "uint256"
								}
							],
							"name": "getTicketTypeInfo",
							"outputs": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "id",
											"type": "uint256"
										},
										{
											"internalType": "uint32",
											"name": "maxTickets",
											"type": "uint32"
										},
										{
											"internalType": "uint32",
											"name": "maxTicketsPerUser",
											"type": "uint32"
										},
										{
											"internalType": "uint256",
											"name": "ticketPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingStartDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "bookingEndDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "revealed",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "revealStartDate",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "sellable",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "maxSellablePrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "royaltySellable",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "earlyBid",
											"type": "bool"
										},
										{
											"internalType": "uint256",
											"name": "discountPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "discountEndDate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "templateId",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "fixAmount",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "freeDrink",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "priorityQueue",
											"type": "bool"
										},
										{
											"internalType": "string",
											"name": "name",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "hiddenuri",
											"type": "string"
										},
										{
											"internalType": "string",
											"name": "image",
											"type": "string"
										},
										{
											"components": [
												{
													"internalType": "string",
													"name": "gradient1Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "gradient2Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleOne",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleTwo",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "price",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "fontUrl",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketType",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "venue",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "svgUrl",
													"type": "string"
												}
											],
											"internalType": "struct TixSellLibrary.TicketDesignInfo",
											"name": "ticketDesignInfo",
											"type": "tuple"
										}
									],
									"internalType": "struct TixSellLibrary.TicketType",
									"name": "",
									"type": "tuple"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"createTicketType(uint256,(uint256,uint32,uint32,uint256,uint256,uint256,bool,uint256,bool,uint256,uint256,bool,uint256,uint256,uint256,uint256,bool,bool,string,string,string,(string,string,string,string,string,string,string,string,string,string,string,string,string,string,string)))": "19d01a5c",
							"deleteTicketType(uint256)": "2e990964",
							"fetchTicketsType()": "28a89e19",
							"getTicketTypeInfo(uint256)": "8addbf3c"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxTickets\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTicketsPerUser\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"ticketPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingStartDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingEndDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"revealed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"revealStartDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sellable\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSellablePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"royaltySellable\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"earlyBid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"discountPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"discountEndDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"freeDrink\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"priorityQueue\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"hiddenuri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"gradient1Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"gradient2Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleOne\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleTwo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fontUrl\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"venue\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"svgUrl\",\"type\":\"string\"}],\"internalType\":\"struct TixSellLibrary.TicketDesignInfo\",\"name\":\"ticketDesignInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct TixSellLibrary.TicketType\",\"name\":\"_ticketTypeData\",\"type\":\"tuple\"}],\"name\":\"createTicketType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"}],\"name\":\"deleteTicketType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fetchTicketsType\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxTickets\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTicketsPerUser\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"ticketPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingStartDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingEndDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"revealed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"revealStartDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sellable\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSellablePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"royaltySellable\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"earlyBid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"discountPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"discountEndDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"freeDrink\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"priorityQueue\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"hiddenuri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"gradient1Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"gradient2Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleOne\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleTwo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fontUrl\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"venue\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"svgUrl\",\"type\":\"string\"}],\"internalType\":\"struct TixSellLibrary.TicketDesignInfo\",\"name\":\"ticketDesignInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct TixSellLibrary.TicketType[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ticketTypeId\",\"type\":\"uint256\"}],\"name\":\"getTicketTypeInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxTickets\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTicketsPerUser\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"ticketPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingStartDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bookingEndDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"revealed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"revealStartDate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sellable\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSellablePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"royaltySellable\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"earlyBid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"discountPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"discountEndDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"freeDrink\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"priorityQueue\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"hiddenuri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"gradient1Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"gradient2Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleOne\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleTwo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fontUrl\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"venue\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"svgUrl\",\"type\":\"string\"}],\"internalType\":\"struct TixSellLibrary.TicketDesignInfo\",\"name\":\"ticketDesignInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct TixSellLibrary.TicketType\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITicketTypeContract.sol\":\"ITicketTypeContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellLibraries.sol\":{\"keccak256\":\"0xc42129175af39e8039d77c98dc97772f9d20a5c203c131b39ddf9644d6a2f44d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e908af4696099f9b19eed848d14fc1b2fa28610e64863d7e88ad172710d72d49\",\"dweb:/ipfs/QmZaE8VGCdw6DWhhFpWcGLr42PxwgTLP4dHuiVCvww5ap7\"]},\"contracts/interfaces/ITicketTypeContract.sol\":{\"keccak256\":\"0xd2785777cfb16741e16f737e1c3c0492728630ecadbb654461b73f632f8b4dfa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4e9409733c6eb980c30477443c201d47518bcde196e0df2d8aa7cb79079eae37\",\"dweb:/ipfs/QmUe1zUQy6RCJNjaiLoQK95Y9tmv4RYMxYcdYQxCkpc3BZ\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"contracts/interfaces/ITixSellNftTemplate.sol": {
				"ITixSellNftTemplateContract": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_ticketAddress",
									"type": "address"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "templateId",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "tokenId",
											"type": "uint256"
										},
										{
											"internalType": "string",
											"name": "image",
											"type": "string"
										},
										{
											"internalType": "uint256",
											"name": "eventDate",
											"type": "uint256"
										},
										{
											"components": [
												{
													"internalType": "string",
													"name": "gradient1Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "gradient2Color",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleOne",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleTwo",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventTitleFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "eventColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketTypeColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "price",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceColor",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "priceFont",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "fontUrl",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "ticketType",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "venue",
													"type": "string"
												},
												{
													"internalType": "string",
													"name": "svgUrl",
													"type": "string"
												}
											],
											"internalType": "struct TixSellLibrary.TicketDesignInfo",
											"name": "ticketDesignInfo",
											"type": "tuple"
										},
										{
											"internalType": "bool",
											"name": "freeDrink",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "priorityQueue",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "sellable",
											"type": "bool"
										}
									],
									"internalType": "struct TixSellLibrary.NftTicketInfo",
									"name": "nftTicketInfo",
									"type": "tuple"
								},
								{
									"internalType": "bool",
									"name": "revealed",
									"type": "bool"
								}
							],
							"name": "getURI",
							"outputs": [
								{
									"internalType": "string",
									"name": "finalSVG",
									"type": "string"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"functionDebugData": {},
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"getURI(address,(uint256,uint256,string,uint256,(string,string,string,string,string,string,string,string,string,string,string,string,string,string,string),bool,bool,bool),bool)": "6c0bc1a0"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ticketAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"templateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"eventDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"gradient1Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"gradient2Color\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleOne\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleTwo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventTitleFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"eventColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketTypeColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceColor\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"priceFont\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fontUrl\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticketType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"venue\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"svgUrl\",\"type\":\"string\"}],\"internalType\":\"struct TixSellLibrary.TicketDesignInfo\",\"name\":\"ticketDesignInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"freeDrink\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"priorityQueue\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"sellable\",\"type\":\"bool\"}],\"internalType\":\"struct TixSellLibrary.NftTicketInfo\",\"name\":\"nftTicketInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"revealed\",\"type\":\"bool\"}],\"name\":\"getURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"finalSVG\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITixSellNftTemplate.sol\":\"ITixSellNftTemplateContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/TixSellLibraries.sol\":{\"keccak256\":\"0xc42129175af39e8039d77c98dc97772f9d20a5c203c131b39ddf9644d6a2f44d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e908af4696099f9b19eed848d14fc1b2fa28610e64863d7e88ad172710d72d49\",\"dweb:/ipfs/QmZaE8VGCdw6DWhhFpWcGLr42PxwgTLP4dHuiVCvww5ap7\"]},\"contracts/interfaces/ITixSellNftTemplate.sol\":{\"keccak256\":\"0x949831b483a43cd210d98dcf847e7dda055b10c15a3f8f330a471210d470a998\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://da7be1ead1d92fde08aa88b70f31c8c0f3d0ba95352ef3dc5700187df0cdfc4b\",\"dweb:/ipfs/QmW6fFGR6Nc7h66w6jawFA5jVgbnorLE4esAtPBRRTGgLN\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			}
		},
		"sources": {
			"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol": {
				"ast": {
					"absolutePath": "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
					"exportedSymbols": {
						"AggregatorV3Interface": [
							45
						]
					},
					"id": 46,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:23:0"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "AggregatorV3Interface",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 45,
							"linearizedBaseContracts": [
								45
							],
							"name": "AggregatorV3Interface",
							"nameLocation": "67:21:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "313ce567",
									"id": 6,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "decimals",
									"nameLocation": "102:8:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "110:2:0"
									},
									"returnParameters": {
										"id": 5,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6,
												"src": "136:5:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 3,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "136:5:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "135:7:0"
									},
									"scope": 45,
									"src": "93:50:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "7284e416",
									"id": 11,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "description",
									"nameLocation": "156:11:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "167:2:0"
									},
									"returnParameters": {
										"id": 10,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11,
												"src": "193:13:0",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "193:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "192:15:0"
									},
									"scope": 45,
									"src": "147:61:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "54fd4d50",
									"id": 16,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "version",
									"nameLocation": "221:7:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 12,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "228:2:0"
									},
									"returnParameters": {
										"id": 15,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 14,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 16,
												"src": "254:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 13,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "254:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "253:9:0"
									},
									"scope": 45,
									"src": "212:51:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "9a6fc8f5",
									"id": 31,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getRoundData",
									"nameLocation": "276:12:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 19,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 18,
												"mutability": "mutable",
												"name": "_roundId",
												"nameLocation": "301:8:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "294:15:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint80",
													"typeString": "uint80"
												},
												"typeName": {
													"id": 17,
													"name": "uint80",
													"nodeType": "ElementaryTypeName",
													"src": "294:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint80",
														"typeString": "uint80"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "288:25:0"
									},
									"returnParameters": {
										"id": 30,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 21,
												"mutability": "mutable",
												"name": "roundId",
												"nameLocation": "344:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "337:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint80",
													"typeString": "uint80"
												},
												"typeName": {
													"id": 20,
													"name": "uint80",
													"nodeType": "ElementaryTypeName",
													"src": "337:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint80",
														"typeString": "uint80"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 23,
												"mutability": "mutable",
												"name": "answer",
												"nameLocation": "360:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "353:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 22,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "353:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 25,
												"mutability": "mutable",
												"name": "startedAt",
												"nameLocation": "376:9:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "368:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 24,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "368:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 27,
												"mutability": "mutable",
												"name": "updatedAt",
												"nameLocation": "395:9:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "387:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 26,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "387:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 29,
												"mutability": "mutable",
												"name": "answeredInRound",
												"nameLocation": "413:15:0",
												"nodeType": "VariableDeclaration",
												"scope": 31,
												"src": "406:22:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint80",
													"typeString": "uint80"
												},
												"typeName": {
													"id": 28,
													"name": "uint80",
													"nodeType": "ElementaryTypeName",
													"src": "406:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint80",
														"typeString": "uint80"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "336:93:0"
									},
									"scope": 45,
									"src": "267:163:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "feaf968c",
									"id": 44,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "latestRoundData",
									"nameLocation": "443:15:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 32,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "458:2:0"
									},
									"returnParameters": {
										"id": 43,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 34,
												"mutability": "mutable",
												"name": "roundId",
												"nameLocation": "503:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "496:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint80",
													"typeString": "uint80"
												},
												"typeName": {
													"id": 33,
													"name": "uint80",
													"nodeType": "ElementaryTypeName",
													"src": "496:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint80",
														"typeString": "uint80"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 36,
												"mutability": "mutable",
												"name": "answer",
												"nameLocation": "519:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "512:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 35,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "512:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 38,
												"mutability": "mutable",
												"name": "startedAt",
												"nameLocation": "535:9:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "527:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 37,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "527:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 40,
												"mutability": "mutable",
												"name": "updatedAt",
												"nameLocation": "554:9:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "546:17:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 39,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "546:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 42,
												"mutability": "mutable",
												"name": "answeredInRound",
												"nameLocation": "572:15:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "565:22:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint80",
													"typeString": "uint80"
												},
												"typeName": {
													"id": 41,
													"name": "uint80",
													"nodeType": "ElementaryTypeName",
													"src": "565:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint80",
														"typeString": "uint80"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "495:93:0"
									},
									"scope": 45,
									"src": "434:155:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 46,
							"src": "57:534:0",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "32:560:0"
				},
				"id": 0
			},
			"@openzeppelin/contracts/access/AccessControl.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/access/AccessControl.sol",
					"exportedSymbols": {
						"AccessControl": [
							341
						],
						"Context": [
							2881
						],
						"ERC165": [
							3160
						],
						"IAccessControl": [
							424
						]
					},
					"id": 342,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 47,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "108:24:1"
						},
						{
							"absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol",
							"file": "./IAccessControl.sol",
							"id": 49,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 342,
							"sourceUnit": 425,
							"src": "134:52:1",
							"symbolAliases": [
								{
									"foreign": {
										"id": 48,
										"name": "IAccessControl",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 424,
										"src": "142:14:1",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Context.sol",
							"file": "../utils/Context.sol",
							"id": 51,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 342,
							"sourceUnit": 2882,
							"src": "187:45:1",
							"symbolAliases": [
								{
									"foreign": {
										"id": 50,
										"name": "Context",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2881,
										"src": "195:7:1",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
							"file": "../utils/introspection/ERC165.sol",
							"id": 53,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 342,
							"sourceUnit": 3161,
							"src": "233:57:1",
							"symbolAliases": [
								{
									"foreign": {
										"id": 52,
										"name": "ERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3160,
										"src": "241:6:1",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": true,
							"baseContracts": [
								{
									"baseName": {
										"id": 55,
										"name": "Context",
										"nameLocations": [
											"1988:7:1"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2881,
										"src": "1988:7:1"
									},
									"id": 56,
									"nodeType": "InheritanceSpecifier",
									"src": "1988:7:1"
								},
								{
									"baseName": {
										"id": 57,
										"name": "IAccessControl",
										"nameLocations": [
											"1997:14:1"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 424,
										"src": "1997:14:1"
									},
									"id": 58,
									"nodeType": "InheritanceSpecifier",
									"src": "1997:14:1"
								},
								{
									"baseName": {
										"id": 59,
										"name": "ERC165",
										"nameLocations": [
											"2013:6:1"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3160,
										"src": "2013:6:1"
									},
									"id": 60,
									"nodeType": "InheritanceSpecifier",
									"src": "2013:6:1"
								}
							],
							"canonicalName": "AccessControl",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 54,
								"nodeType": "StructuredDocumentation",
								"src": "292:1660:1",
								"text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."
							},
							"fullyImplemented": true,
							"id": 341,
							"linearizedBaseContracts": [
								341,
								3160,
								3172,
								424,
								2881
							],
							"name": "AccessControl",
							"nameLocation": "1971:13:1",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "AccessControl.RoleData",
									"id": 67,
									"members": [
										{
											"constant": false,
											"id": 64,
											"mutability": "mutable",
											"name": "hasRole",
											"nameLocation": "2085:7:1",
											"nodeType": "VariableDeclaration",
											"scope": 67,
											"src": "2052:40:1",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
												"typeString": "mapping(address => bool)"
											},
											"typeName": {
												"id": 63,
												"keyName": "account",
												"keyNameLocation": "2068:7:1",
												"keyType": {
													"id": 61,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2060:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "Mapping",
												"src": "2052:32:1",
												"typeDescriptions": {
													"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
													"typeString": "mapping(address => bool)"
												},
												"valueName": "",
												"valueNameLocation": "-1:-1:-1",
												"valueType": {
													"id": 62,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2079:4:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 66,
											"mutability": "mutable",
											"name": "adminRole",
											"nameLocation": "2110:9:1",
											"nodeType": "VariableDeclaration",
											"scope": 67,
											"src": "2102:17:1",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bytes32",
												"typeString": "bytes32"
											},
											"typeName": {
												"id": 65,
												"name": "bytes32",
												"nodeType": "ElementaryTypeName",
												"src": "2102:7:1",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "RoleData",
									"nameLocation": "2033:8:1",
									"nodeType": "StructDefinition",
									"scope": 341,
									"src": "2026:100:1",
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 72,
									"mutability": "mutable",
									"name": "_roles",
									"nameLocation": "2174:6:1",
									"nodeType": "VariableDeclaration",
									"scope": 341,
									"src": "2132:48:1",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
										"typeString": "mapping(bytes32 => struct AccessControl.RoleData)"
									},
									"typeName": {
										"id": 71,
										"keyName": "role",
										"keyNameLocation": "2148:4:1",
										"keyType": {
											"id": 68,
											"name": "bytes32",
											"nodeType": "ElementaryTypeName",
											"src": "2140:7:1",
											"typeDescriptions": {
												"typeIdentifier": "t_bytes32",
												"typeString": "bytes32"
											}
										},
										"nodeType": "Mapping",
										"src": "2132:33:1",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
											"typeString": "mapping(bytes32 => struct AccessControl.RoleData)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 70,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 69,
												"name": "RoleData",
												"nameLocations": [
													"2156:8:1"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 67,
												"src": "2156:8:1"
											},
											"referencedDeclaration": 67,
											"src": "2156:8:1",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_RoleData_$67_storage_ptr",
												"typeString": "struct AccessControl.RoleData"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"functionSelector": "a217fddf",
									"id": 75,
									"mutability": "constant",
									"name": "DEFAULT_ADMIN_ROLE",
									"nameLocation": "2211:18:1",
									"nodeType": "VariableDeclaration",
									"scope": 341,
									"src": "2187:49:1",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes32",
										"typeString": "bytes32"
									},
									"typeName": {
										"id": 73,
										"name": "bytes32",
										"nodeType": "ElementaryTypeName",
										"src": "2187:7:1",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"value": {
										"hexValue": "30783030",
										"id": 74,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "2232:4:1",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_0_by_1",
											"typeString": "int_const 0"
										},
										"value": "0x00"
									},
									"visibility": "public"
								},
								{
									"body": {
										"id": 85,
										"nodeType": "Block",
										"src": "2454:44:1",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 81,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 78,
															"src": "2475:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"id": 80,
														"name": "_checkRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															139,
															160
														],
														"referencedDeclaration": 139,
														"src": "2464:10:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$",
															"typeString": "function (bytes32) view"
														}
													},
													"id": 82,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2464:16:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 83,
												"nodeType": "ExpressionStatement",
												"src": "2464:16:1"
											},
											{
												"id": 84,
												"nodeType": "PlaceholderStatement",
												"src": "2490:1:1"
											}
										]
									},
									"documentation": {
										"id": 76,
										"nodeType": "StructuredDocumentation",
										"src": "2243:174:1",
										"text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."
									},
									"id": 86,
									"name": "onlyRole",
									"nameLocation": "2431:8:1",
									"nodeType": "ModifierDefinition",
									"parameters": {
										"id": 79,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 78,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "2448:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 86,
												"src": "2440:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 77,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2440:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2439:14:1"
									},
									"src": "2422:76:1",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"baseFunctions": [
										3159
									],
									"body": {
										"id": 107,
										"nodeType": "Block",
										"src": "2656:111:1",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 105,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														},
														"id": 100,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 95,
															"name": "interfaceId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 89,
															"src": "2673:11:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"expression": {
																"arguments": [
																	{
																		"id": 97,
																		"name": "IAccessControl",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 424,
																		"src": "2693:14:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_contract$_IAccessControl_$424_$",
																			"typeString": "type(contract IAccessControl)"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_type$_t_contract$_IAccessControl_$424_$",
																			"typeString": "type(contract IAccessControl)"
																		}
																	],
																	"id": 96,
																	"name": "type",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967269,
																	"src": "2688:4:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
																		"typeString": "function () pure"
																	}
																},
																"id": 98,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2688:20:1",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$424",
																	"typeString": "type(contract IAccessControl)"
																}
															},
															"id": 99,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"memberLocation": "2709:11:1",
															"memberName": "interfaceId",
															"nodeType": "MemberAccess",
															"src": "2688:32:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"src": "2673:47:1",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"arguments": [
															{
																"id": 103,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 89,
																"src": "2748:11:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															],
															"expression": {
																"id": 101,
																"name": "super",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967271,
																"src": "2724:5:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_super$_AccessControl_$341_$",
																	"typeString": "type(contract super AccessControl)"
																}
															},
															"id": 102,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2730:17:1",
															"memberName": "supportsInterface",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 3159,
															"src": "2724:23:1",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
																"typeString": "function (bytes4) view returns (bool)"
															}
														},
														"id": 104,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2724:36:1",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "2673:87:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 94,
												"id": 106,
												"nodeType": "Return",
												"src": "2666:94:1"
											}
										]
									},
									"documentation": {
										"id": 87,
										"nodeType": "StructuredDocumentation",
										"src": "2504:56:1",
										"text": " @dev See {IERC165-supportsInterface}."
									},
									"functionSelector": "01ffc9a7",
									"id": 108,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "2574:17:1",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 91,
										"nodeType": "OverrideSpecifier",
										"overrides": [],
										"src": "2632:8:1"
									},
									"parameters": {
										"id": 90,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 89,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "2599:11:1",
												"nodeType": "VariableDeclaration",
												"scope": 108,
												"src": "2592:18:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 88,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "2592:6:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2591:20:1"
									},
									"returnParameters": {
										"id": 94,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 93,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 108,
												"src": "2650:4:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 92,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2650:4:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2649:6:1"
									},
									"scope": 341,
									"src": "2565:202:1",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										391
									],
									"body": {
										"id": 125,
										"nodeType": "Block",
										"src": "2937:53:1",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"expression": {
															"baseExpression": {
																"id": 118,
																"name": "_roles",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 72,
																"src": "2954:6:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
																	"typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)"
																}
															},
															"id": 120,
															"indexExpression": {
																"id": 119,
																"name": "role",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 111,
																"src": "2961:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "2954:12:1",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_RoleData_$67_storage",
																"typeString": "struct AccessControl.RoleData storage ref"
															}
														},
														"id": 121,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "2967:7:1",
														"memberName": "hasRole",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 64,
														"src": "2954:20:1",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
															"typeString": "mapping(address => bool)"
														}
													},
													"id": 123,
													"indexExpression": {
														"id": 122,
														"name": "account",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 113,
														"src": "2975:7:1",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "2954:29:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 117,
												"id": 124,
												"nodeType": "Return",
												"src": "2947:36:1"
											}
										]
									},
									"documentation": {
										"id": 109,
										"nodeType": "StructuredDocumentation",
										"src": "2773:76:1",
										"text": " @dev Returns `true` if `account` has been granted `role`."
									},
									"functionSelector": "91d14854",
									"id": 126,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "hasRole",
									"nameLocation": "2863:7:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 114,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 111,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "2879:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 126,
												"src": "2871:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 110,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2871:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 113,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "2893:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 126,
												"src": "2885:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 112,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2885:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2870:31:1"
									},
									"returnParameters": {
										"id": 117,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 116,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 126,
												"src": "2931:4:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 115,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2931:4:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2930:6:1"
									},
									"scope": 341,
									"src": "2854:136:1",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 138,
										"nodeType": "Block",
										"src": "3255:47:1",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 133,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 129,
															"src": "3276:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 134,
																"name": "_msgSender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2871,
																"src": "3282:10:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																	"typeString": "function () view returns (address)"
																}
															},
															"id": 135,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3282:12:1",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 132,
														"name": "_checkRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															139,
															160
														],
														"referencedDeclaration": 160,
														"src": "3265:10:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$",
															"typeString": "function (bytes32,address) view"
														}
													},
													"id": 136,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3265:30:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 137,
												"nodeType": "ExpressionStatement",
												"src": "3265:30:1"
											}
										]
									},
									"documentation": {
										"id": 127,
										"nodeType": "StructuredDocumentation",
										"src": "2996:198:1",
										"text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."
									},
									"id": 139,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_checkRole",
									"nameLocation": "3208:10:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 130,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 129,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "3227:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 139,
												"src": "3219:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 128,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3219:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3218:14:1"
									},
									"returnParameters": {
										"id": 131,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3255:0:1"
									},
									"scope": 341,
									"src": "3199:103:1",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 159,
										"nodeType": "Block",
										"src": "3505:124:1",
										"statements": [
											{
												"condition": {
													"id": 151,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "3519:23:1",
													"subExpression": {
														"arguments": [
															{
																"id": 148,
																"name": "role",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 142,
																"src": "3528:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															{
																"id": 149,
																"name": "account",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 144,
																"src": "3534:7:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 147,
															"name": "hasRole",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 126,
															"src": "3520:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
																"typeString": "function (bytes32,address) view returns (bool)"
															}
														},
														"id": 150,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3520:22:1",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 158,
												"nodeType": "IfStatement",
												"src": "3515:108:1",
												"trueBody": {
													"id": 157,
													"nodeType": "Block",
													"src": "3544:79:1",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 153,
																		"name": "account",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 144,
																		"src": "3598:7:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 154,
																		"name": "role",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 142,
																		"src": "3607:4:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	],
																	"id": 152,
																	"name": "AccessControlUnauthorizedAccount",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 351,
																	"src": "3565:32:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$__$",
																		"typeString": "function (address,bytes32) pure"
																	}
																},
																"id": 155,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3565:47:1",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 156,
															"nodeType": "RevertStatement",
															"src": "3558:54:1"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 140,
										"nodeType": "StructuredDocumentation",
										"src": "3308:119:1",
										"text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."
									},
									"id": 160,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_checkRole",
									"nameLocation": "3441:10:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 145,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 142,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "3460:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 160,
												"src": "3452:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 141,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3452:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 144,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "3474:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 160,
												"src": "3466:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 143,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3466:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3451:31:1"
									},
									"returnParameters": {
										"id": 146,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3505:0:1"
									},
									"scope": 341,
									"src": "3432:197:1",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"baseFunctions": [
										399
									],
									"body": {
										"id": 173,
										"nodeType": "Block",
										"src": "3884:46:1",
										"statements": [
											{
												"expression": {
													"expression": {
														"baseExpression": {
															"id": 168,
															"name": "_roles",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 72,
															"src": "3901:6:1",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
																"typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)"
															}
														},
														"id": 170,
														"indexExpression": {
															"id": 169,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 163,
															"src": "3908:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "IndexAccess",
														"src": "3901:12:1",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoleData_$67_storage",
															"typeString": "struct AccessControl.RoleData storage ref"
														}
													},
													"id": 171,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "3914:9:1",
													"memberName": "adminRole",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 66,
													"src": "3901:22:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"functionReturnParameters": 167,
												"id": 172,
												"nodeType": "Return",
												"src": "3894:29:1"
											}
										]
									},
									"documentation": {
										"id": 161,
										"nodeType": "StructuredDocumentation",
										"src": "3635:170:1",
										"text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."
									},
									"functionSelector": "248a9ca3",
									"id": 174,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getRoleAdmin",
									"nameLocation": "3819:12:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 164,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 163,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "3840:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 174,
												"src": "3832:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 162,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3832:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3831:14:1"
									},
									"returnParameters": {
										"id": 167,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 166,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 174,
												"src": "3875:7:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 165,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3875:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3874:9:1"
									},
									"scope": 341,
									"src": "3810:120:1",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										407
									],
									"body": {
										"id": 192,
										"nodeType": "Block",
										"src": "4320:42:1",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 188,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 177,
															"src": "4341:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 189,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 179,
															"src": "4347:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 187,
														"name": "_grantRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 302,
														"src": "4330:10:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
															"typeString": "function (bytes32,address) returns (bool)"
														}
													},
													"id": 190,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4330:25:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 191,
												"nodeType": "ExpressionStatement",
												"src": "4330:25:1"
											}
										]
									},
									"documentation": {
										"id": 175,
										"nodeType": "StructuredDocumentation",
										"src": "3936:285:1",
										"text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."
									},
									"functionSelector": "2f2ff15d",
									"id": 193,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"arguments": [
												{
													"arguments": [
														{
															"id": 183,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 177,
															"src": "4313:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"id": 182,
														"name": "getRoleAdmin",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 174,
														"src": "4300:12:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
															"typeString": "function (bytes32) view returns (bytes32)"
														}
													},
													"id": 184,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4300:18:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												}
											],
											"id": 185,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 181,
												"name": "onlyRole",
												"nameLocations": [
													"4291:8:1"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 86,
												"src": "4291:8:1"
											},
											"nodeType": "ModifierInvocation",
											"src": "4291:28:1"
										}
									],
									"name": "grantRole",
									"nameLocation": "4235:9:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 180,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 177,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "4253:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 193,
												"src": "4245:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 176,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "4245:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 179,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "4267:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 193,
												"src": "4259:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 178,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4259:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4244:31:1"
									},
									"returnParameters": {
										"id": 186,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4320:0:1"
									},
									"scope": 341,
									"src": "4226:136:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										415
									],
									"body": {
										"id": 211,
										"nodeType": "Block",
										"src": "4737:43:1",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 207,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 196,
															"src": "4759:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 208,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 198,
															"src": "4765:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 206,
														"name": "_revokeRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 340,
														"src": "4747:11:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
															"typeString": "function (bytes32,address) returns (bool)"
														}
													},
													"id": 209,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4747:26:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 210,
												"nodeType": "ExpressionStatement",
												"src": "4747:26:1"
											}
										]
									},
									"documentation": {
										"id": 194,
										"nodeType": "StructuredDocumentation",
										"src": "4368:269:1",
										"text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."
									},
									"functionSelector": "d547741f",
									"id": 212,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"arguments": [
												{
													"arguments": [
														{
															"id": 202,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 196,
															"src": "4730:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"id": 201,
														"name": "getRoleAdmin",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 174,
														"src": "4717:12:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
															"typeString": "function (bytes32) view returns (bytes32)"
														}
													},
													"id": 203,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4717:18:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												}
											],
											"id": 204,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 200,
												"name": "onlyRole",
												"nameLocations": [
													"4708:8:1"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 86,
												"src": "4708:8:1"
											},
											"nodeType": "ModifierInvocation",
											"src": "4708:28:1"
										}
									],
									"name": "revokeRole",
									"nameLocation": "4651:10:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 199,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 196,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "4670:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 212,
												"src": "4662:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 195,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "4662:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 198,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "4684:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 212,
												"src": "4676:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 197,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4676:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4661:31:1"
									},
									"returnParameters": {
										"id": 205,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4737:0:1"
									},
									"scope": 341,
									"src": "4642:138:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										423
									],
									"body": {
										"id": 234,
										"nodeType": "Block",
										"src": "5407:166:1",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 223,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 220,
														"name": "callerConfirmation",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 217,
														"src": "5421:18:1",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 221,
															"name": "_msgSender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2871,
															"src": "5443:10:1",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																"typeString": "function () view returns (address)"
															}
														},
														"id": 222,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "5443:12:1",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "5421:34:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 228,
												"nodeType": "IfStatement",
												"src": "5417:102:1",
												"trueBody": {
													"id": 227,
													"nodeType": "Block",
													"src": "5457:62:1",
													"statements": [
														{
															"errorCall": {
																"arguments": [],
																"expression": {
																	"argumentTypes": [],
																	"id": 224,
																	"name": "AccessControlBadConfirmation",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 354,
																	"src": "5478:28:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$__$returns$__$",
																		"typeString": "function () pure"
																	}
																},
																"id": 225,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5478:30:1",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 226,
															"nodeType": "RevertStatement",
															"src": "5471:37:1"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 230,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 215,
															"src": "5541:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 231,
															"name": "callerConfirmation",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 217,
															"src": "5547:18:1",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 229,
														"name": "_revokeRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 340,
														"src": "5529:11:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
															"typeString": "function (bytes32,address) returns (bool)"
														}
													},
													"id": 232,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5529:37:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 233,
												"nodeType": "ExpressionStatement",
												"src": "5529:37:1"
											}
										]
									},
									"documentation": {
										"id": 213,
										"nodeType": "StructuredDocumentation",
										"src": "4786:537:1",
										"text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event."
									},
									"functionSelector": "36568abe",
									"id": 235,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "renounceRole",
									"nameLocation": "5337:12:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 218,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 215,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "5358:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 235,
												"src": "5350:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 214,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "5350:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 217,
												"mutability": "mutable",
												"name": "callerConfirmation",
												"nameLocation": "5372:18:1",
												"nodeType": "VariableDeclaration",
												"scope": 235,
												"src": "5364:26:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 216,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5364:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5349:42:1"
									},
									"returnParameters": {
										"id": 219,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5407:0:1"
									},
									"scope": 341,
									"src": "5328:245:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 262,
										"nodeType": "Block",
										"src": "5771:174:1",
										"statements": [
											{
												"assignments": [
													244
												],
												"declarations": [
													{
														"constant": false,
														"id": 244,
														"mutability": "mutable",
														"name": "previousAdminRole",
														"nameLocation": "5789:17:1",
														"nodeType": "VariableDeclaration",
														"scope": 262,
														"src": "5781:25:1",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"typeName": {
															"id": 243,
															"name": "bytes32",
															"nodeType": "ElementaryTypeName",
															"src": "5781:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 248,
												"initialValue": {
													"arguments": [
														{
															"id": 246,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 238,
															"src": "5822:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"id": 245,
														"name": "getRoleAdmin",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 174,
														"src": "5809:12:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
															"typeString": "function (bytes32) view returns (bytes32)"
														}
													},
													"id": 247,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5809:18:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5781:46:1"
											},
											{
												"expression": {
													"id": 254,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"baseExpression": {
																"id": 249,
																"name": "_roles",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 72,
																"src": "5837:6:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
																	"typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)"
																}
															},
															"id": 251,
															"indexExpression": {
																"id": 250,
																"name": "role",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 238,
																"src": "5844:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "5837:12:1",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_RoleData_$67_storage",
																"typeString": "struct AccessControl.RoleData storage ref"
															}
														},
														"id": 252,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberLocation": "5850:9:1",
														"memberName": "adminRole",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 66,
														"src": "5837:22:1",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 253,
														"name": "adminRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 240,
														"src": "5862:9:1",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														}
													},
													"src": "5837:34:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"id": 255,
												"nodeType": "ExpressionStatement",
												"src": "5837:34:1"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 257,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 238,
															"src": "5903:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 258,
															"name": "previousAdminRole",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 244,
															"src": "5909:17:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 259,
															"name": "adminRole",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 240,
															"src": "5928:9:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"id": 256,
														"name": "RoleAdminChanged",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 363,
														"src": "5886:16:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$",
															"typeString": "function (bytes32,bytes32,bytes32)"
														}
													},
													"id": 260,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5886:52:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 261,
												"nodeType": "EmitStatement",
												"src": "5881:57:1"
											}
										]
									},
									"documentation": {
										"id": 236,
										"nodeType": "StructuredDocumentation",
										"src": "5579:114:1",
										"text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."
									},
									"id": 263,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_setRoleAdmin",
									"nameLocation": "5707:13:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 241,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 238,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "5729:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 263,
												"src": "5721:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 237,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "5721:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 240,
												"mutability": "mutable",
												"name": "adminRole",
												"nameLocation": "5743:9:1",
												"nodeType": "VariableDeclaration",
												"scope": 263,
												"src": "5735:17:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 239,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "5735:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5720:33:1"
									},
									"returnParameters": {
										"id": 242,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5771:0:1"
									},
									"scope": 341,
									"src": "5698:247:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 301,
										"nodeType": "Block",
										"src": "6262:233:1",
										"statements": [
											{
												"condition": {
													"id": 277,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "6276:23:1",
													"subExpression": {
														"arguments": [
															{
																"id": 274,
																"name": "role",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 266,
																"src": "6285:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															{
																"id": 275,
																"name": "account",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 268,
																"src": "6291:7:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 273,
															"name": "hasRole",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 126,
															"src": "6277:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
																"typeString": "function (bytes32,address) view returns (bool)"
															}
														},
														"id": 276,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "6277:22:1",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 299,
													"nodeType": "Block",
													"src": "6452:37:1",
													"statements": [
														{
															"expression": {
																"hexValue": "66616c7365",
																"id": 297,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6473:5:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "false"
															},
															"functionReturnParameters": 272,
															"id": 298,
															"nodeType": "Return",
															"src": "6466:12:1"
														}
													]
												},
												"id": 300,
												"nodeType": "IfStatement",
												"src": "6272:217:1",
												"trueBody": {
													"id": 296,
													"nodeType": "Block",
													"src": "6301:145:1",
													"statements": [
														{
															"expression": {
																"id": 285,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"baseExpression": {
																		"expression": {
																			"baseExpression": {
																				"id": 278,
																				"name": "_roles",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 72,
																				"src": "6315:6:1",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
																					"typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)"
																				}
																			},
																			"id": 280,
																			"indexExpression": {
																				"id": 279,
																				"name": "role",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 266,
																				"src": "6322:4:1",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes32",
																					"typeString": "bytes32"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "IndexAccess",
																			"src": "6315:12:1",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_RoleData_$67_storage",
																				"typeString": "struct AccessControl.RoleData storage ref"
																			}
																		},
																		"id": 281,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "6328:7:1",
																		"memberName": "hasRole",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 64,
																		"src": "6315:20:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
																			"typeString": "mapping(address => bool)"
																		}
																	},
																	"id": 283,
																	"indexExpression": {
																		"id": 282,
																		"name": "account",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 268,
																		"src": "6336:7:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"nodeType": "IndexAccess",
																	"src": "6315:29:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"hexValue": "74727565",
																	"id": 284,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6347:4:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																"src": "6315:36:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 286,
															"nodeType": "ExpressionStatement",
															"src": "6315:36:1"
														},
														{
															"eventCall": {
																"arguments": [
																	{
																		"id": 288,
																		"name": "role",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 266,
																		"src": "6382:4:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	},
																	{
																		"id": 289,
																		"name": "account",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 268,
																		"src": "6388:7:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"id": 290,
																			"name": "_msgSender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2871,
																			"src": "6397:10:1",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																				"typeString": "function () view returns (address)"
																			}
																		},
																		"id": 291,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6397:12:1",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 287,
																	"name": "RoleGranted",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 372,
																	"src": "6370:11:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$",
																		"typeString": "function (bytes32,address,address)"
																	}
																},
																"id": 292,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6370:40:1",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 293,
															"nodeType": "EmitStatement",
															"src": "6365:45:1"
														},
														{
															"expression": {
																"hexValue": "74727565",
																"id": 294,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6431:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "true"
															},
															"functionReturnParameters": 272,
															"id": 295,
															"nodeType": "Return",
															"src": "6424:11:1"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 264,
										"nodeType": "StructuredDocumentation",
										"src": "5951:223:1",
										"text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event."
									},
									"id": 302,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_grantRole",
									"nameLocation": "6188:10:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 269,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 266,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "6207:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 302,
												"src": "6199:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 265,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "6199:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 268,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "6221:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 302,
												"src": "6213:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 267,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6213:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6198:31:1"
									},
									"returnParameters": {
										"id": 272,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 271,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 302,
												"src": "6256:4:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 270,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6256:4:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6255:6:1"
									},
									"scope": 341,
									"src": "6179:316:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 339,
										"nodeType": "Block",
										"src": "6814:233:1",
										"statements": [
											{
												"condition": {
													"arguments": [
														{
															"id": 313,
															"name": "role",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 305,
															"src": "6836:4:1",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 314,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 307,
															"src": "6842:7:1",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 312,
														"name": "hasRole",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 126,
														"src": "6828:7:1",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
															"typeString": "function (bytes32,address) view returns (bool)"
														}
													},
													"id": 315,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6828:22:1",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 337,
													"nodeType": "Block",
													"src": "7004:37:1",
													"statements": [
														{
															"expression": {
																"hexValue": "66616c7365",
																"id": 335,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7025:5:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "false"
															},
															"functionReturnParameters": 311,
															"id": 336,
															"nodeType": "Return",
															"src": "7018:12:1"
														}
													]
												},
												"id": 338,
												"nodeType": "IfStatement",
												"src": "6824:217:1",
												"trueBody": {
													"id": 334,
													"nodeType": "Block",
													"src": "6852:146:1",
													"statements": [
														{
															"expression": {
																"id": 323,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"baseExpression": {
																		"expression": {
																			"baseExpression": {
																				"id": 316,
																				"name": "_roles",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 72,
																				"src": "6866:6:1",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$67_storage_$",
																					"typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)"
																				}
																			},
																			"id": 318,
																			"indexExpression": {
																				"id": 317,
																				"name": "role",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 305,
																				"src": "6873:4:1",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes32",
																					"typeString": "bytes32"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "IndexAccess",
																			"src": "6866:12:1",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_RoleData_$67_storage",
																				"typeString": "struct AccessControl.RoleData storage ref"
																			}
																		},
																		"id": 319,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "6879:7:1",
																		"memberName": "hasRole",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 64,
																		"src": "6866:20:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
																			"typeString": "mapping(address => bool)"
																		}
																	},
																	"id": 321,
																	"indexExpression": {
																		"id": 320,
																		"name": "account",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 307,
																		"src": "6887:7:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"nodeType": "IndexAccess",
																	"src": "6866:29:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"hexValue": "66616c7365",
																	"id": 322,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6898:5:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "false"
																},
																"src": "6866:37:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 324,
															"nodeType": "ExpressionStatement",
															"src": "6866:37:1"
														},
														{
															"eventCall": {
																"arguments": [
																	{
																		"id": 326,
																		"name": "role",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 305,
																		"src": "6934:4:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	},
																	{
																		"id": 327,
																		"name": "account",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 307,
																		"src": "6940:7:1",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"id": 328,
																			"name": "_msgSender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2871,
																			"src": "6949:10:1",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																				"typeString": "function () view returns (address)"
																			}
																		},
																		"id": 329,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6949:12:1",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 325,
																	"name": "RoleRevoked",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 381,
																	"src": "6922:11:1",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$",
																		"typeString": "function (bytes32,address,address)"
																	}
																},
																"id": 330,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6922:40:1",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 331,
															"nodeType": "EmitStatement",
															"src": "6917:45:1"
														},
														{
															"expression": {
																"hexValue": "74727565",
																"id": 332,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6983:4:1",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "true"
															},
															"functionReturnParameters": 311,
															"id": 333,
															"nodeType": "Return",
															"src": "6976:11:1"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 303,
										"nodeType": "StructuredDocumentation",
										"src": "6501:224:1",
										"text": " @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."
									},
									"id": 340,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_revokeRole",
									"nameLocation": "6739:11:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 308,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 305,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "6759:4:1",
												"nodeType": "VariableDeclaration",
												"scope": 340,
												"src": "6751:12:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 304,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "6751:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 307,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "6773:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 340,
												"src": "6765:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 306,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6765:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6750:31:1"
									},
									"returnParameters": {
										"id": 311,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 310,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 340,
												"src": "6808:4:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 309,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6808:4:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6807:6:1"
									},
									"scope": 341,
									"src": "6730:317:1",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								}
							],
							"scope": 342,
							"src": "1953:5096:1",
							"usedErrors": [
								351,
								354
							],
							"usedEvents": [
								363,
								372,
								381
							]
						}
					],
					"src": "108:6942:1"
				},
				"id": 1
			},
			"@openzeppelin/contracts/access/IAccessControl.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol",
					"exportedSymbols": {
						"IAccessControl": [
							424
						]
					},
					"id": 425,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 343,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "109:24:2"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IAccessControl",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 344,
								"nodeType": "StructuredDocumentation",
								"src": "135:89:2",
								"text": " @dev External interface of AccessControl declared to support ERC165 detection."
							},
							"fullyImplemented": false,
							"id": 424,
							"linearizedBaseContracts": [
								424
							],
							"name": "IAccessControl",
							"nameLocation": "235:14:2",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 345,
										"nodeType": "StructuredDocumentation",
										"src": "256:56:2",
										"text": " @dev The `account` is missing a role."
									},
									"errorSelector": "e2517d3f",
									"id": 351,
									"name": "AccessControlUnauthorizedAccount",
									"nameLocation": "323:32:2",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 350,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 347,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "364:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 351,
												"src": "356:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 346,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "356:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 349,
												"mutability": "mutable",
												"name": "neededRole",
												"nameLocation": "381:10:2",
												"nodeType": "VariableDeclaration",
												"scope": 351,
												"src": "373:18:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 348,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "373:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "355:37:2"
									},
									"src": "317:76:2"
								},
								{
									"documentation": {
										"id": 352,
										"nodeType": "StructuredDocumentation",
										"src": "399:148:2",
										"text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."
									},
									"errorSelector": "6697b232",
									"id": 354,
									"name": "AccessControlBadConfirmation",
									"nameLocation": "558:28:2",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 353,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "586:2:2"
									},
									"src": "552:37:2"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 355,
										"nodeType": "StructuredDocumentation",
										"src": "595:254:2",
										"text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this."
									},
									"eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff",
									"id": 363,
									"name": "RoleAdminChanged",
									"nameLocation": "860:16:2",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 362,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 357,
												"indexed": true,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "893:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 363,
												"src": "877:20:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 356,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "877:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 359,
												"indexed": true,
												"mutability": "mutable",
												"name": "previousAdminRole",
												"nameLocation": "915:17:2",
												"nodeType": "VariableDeclaration",
												"scope": 363,
												"src": "899:33:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 358,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "899:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 361,
												"indexed": true,
												"mutability": "mutable",
												"name": "newAdminRole",
												"nameLocation": "950:12:2",
												"nodeType": "VariableDeclaration",
												"scope": 363,
												"src": "934:28:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 360,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "934:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "876:87:2"
									},
									"src": "854:110:2"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 364,
										"nodeType": "StructuredDocumentation",
										"src": "970:212:2",
										"text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."
									},
									"eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
									"id": 372,
									"name": "RoleGranted",
									"nameLocation": "1193:11:2",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 371,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 366,
												"indexed": true,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "1221:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 372,
												"src": "1205:20:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 365,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "1205:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 368,
												"indexed": true,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "1243:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 372,
												"src": "1227:23:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 367,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1227:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 370,
												"indexed": true,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "1268:6:2",
												"nodeType": "VariableDeclaration",
												"scope": 372,
												"src": "1252:22:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 369,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1252:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1204:71:2"
									},
									"src": "1187:89:2"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 373,
										"nodeType": "StructuredDocumentation",
										"src": "1282:275:2",
										"text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"
									},
									"eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b",
									"id": 381,
									"name": "RoleRevoked",
									"nameLocation": "1568:11:2",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 380,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 375,
												"indexed": true,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "1596:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 381,
												"src": "1580:20:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 374,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "1580:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 377,
												"indexed": true,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "1618:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 381,
												"src": "1602:23:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 376,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1602:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 379,
												"indexed": true,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "1643:6:2",
												"nodeType": "VariableDeclaration",
												"scope": 381,
												"src": "1627:22:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 378,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1627:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1579:71:2"
									},
									"src": "1562:89:2"
								},
								{
									"documentation": {
										"id": 382,
										"nodeType": "StructuredDocumentation",
										"src": "1657:76:2",
										"text": " @dev Returns `true` if `account` has been granted `role`."
									},
									"functionSelector": "91d14854",
									"id": 391,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "hasRole",
									"nameLocation": "1747:7:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 387,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 384,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "1763:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 391,
												"src": "1755:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 383,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "1755:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 386,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "1777:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 391,
												"src": "1769:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 385,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1769:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1754:31:2"
									},
									"returnParameters": {
										"id": 390,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 389,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 391,
												"src": "1809:4:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 388,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1809:4:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1808:6:2"
									},
									"scope": 424,
									"src": "1738:77:2",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 392,
										"nodeType": "StructuredDocumentation",
										"src": "1821:184:2",
										"text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."
									},
									"functionSelector": "248a9ca3",
									"id": 399,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getRoleAdmin",
									"nameLocation": "2019:12:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 395,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 394,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "2040:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 399,
												"src": "2032:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 393,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2032:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2031:14:2"
									},
									"returnParameters": {
										"id": 398,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 397,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 399,
												"src": "2069:7:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 396,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2069:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2068:9:2"
									},
									"scope": 424,
									"src": "2010:68:2",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 400,
										"nodeType": "StructuredDocumentation",
										"src": "2084:239:2",
										"text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."
									},
									"functionSelector": "2f2ff15d",
									"id": 407,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "grantRole",
									"nameLocation": "2337:9:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 405,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 402,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "2355:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 407,
												"src": "2347:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 401,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2347:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 404,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "2369:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 407,
												"src": "2361:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 403,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2361:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2346:31:2"
									},
									"returnParameters": {
										"id": 406,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2386:0:2"
									},
									"scope": 424,
									"src": "2328:59:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 408,
										"nodeType": "StructuredDocumentation",
										"src": "2393:223:2",
										"text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."
									},
									"functionSelector": "d547741f",
									"id": 415,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "revokeRole",
									"nameLocation": "2630:10:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 413,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 410,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "2649:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 415,
												"src": "2641:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 409,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2641:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 412,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "2663:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 415,
												"src": "2655:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 411,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2655:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2640:31:2"
									},
									"returnParameters": {
										"id": 414,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2680:0:2"
									},
									"scope": 424,
									"src": "2621:60:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 416,
										"nodeType": "StructuredDocumentation",
										"src": "2687:491:2",
										"text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."
									},
									"functionSelector": "36568abe",
									"id": 423,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "renounceRole",
									"nameLocation": "3192:12:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 421,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 418,
												"mutability": "mutable",
												"name": "role",
												"nameLocation": "3213:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 423,
												"src": "3205:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 417,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3205:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 420,
												"mutability": "mutable",
												"name": "callerConfirmation",
												"nameLocation": "3227:18:2",
												"nodeType": "VariableDeclaration",
												"scope": 423,
												"src": "3219:26:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 419,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3219:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3204:42:2"
									},
									"returnParameters": {
										"id": 422,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3255:0:2"
									},
									"scope": 424,
									"src": "3183:73:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 425,
							"src": "225:3033:2",
							"usedErrors": [
								351,
								354
							],
							"usedEvents": [
								363,
								372,
								381
							]
						}
					],
					"src": "109:3150:2"
				},
				"id": 2
			},
			"@openzeppelin/contracts/access/Ownable.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
					"exportedSymbols": {
						"Context": [
							2881
						],
						"Ownable": [
							572
						]
					},
					"id": 573,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 426,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "102:24:3"
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Context.sol",
							"file": "../utils/Context.sol",
							"id": 428,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 573,
							"sourceUnit": 2882,
							"src": "128:45:3",
							"symbolAliases": [
								{
									"foreign": {
										"id": 427,
										"name": "Context",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2881,
										"src": "136:7:3",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": true,
							"baseContracts": [
								{
									"baseName": {
										"id": 430,
										"name": "Context",
										"nameLocations": [
											"692:7:3"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2881,
										"src": "692:7:3"
									},
									"id": 431,
									"nodeType": "InheritanceSpecifier",
									"src": "692:7:3"
								}
							],
							"canonicalName": "Ownable",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 429,
								"nodeType": "StructuredDocumentation",
								"src": "175:487:3",
								"text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."
							},
							"fullyImplemented": true,
							"id": 572,
							"linearizedBaseContracts": [
								572,
								2881
							],
							"name": "Ownable",
							"nameLocation": "681:7:3",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": false,
									"id": 433,
									"mutability": "mutable",
									"name": "_owner",
									"nameLocation": "722:6:3",
									"nodeType": "VariableDeclaration",
									"scope": 572,
									"src": "706:22:3",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address",
										"typeString": "address"
									},
									"typeName": {
										"id": 432,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "706:7:3",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									},
									"visibility": "private"
								},
								{
									"documentation": {
										"id": 434,
										"nodeType": "StructuredDocumentation",
										"src": "735:85:3",
										"text": " @dev The caller account is not authorized to perform an operation."
									},
									"errorSelector": "118cdaa7",
									"id": 438,
									"name": "OwnableUnauthorizedAccount",
									"nameLocation": "831:26:3",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 437,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 436,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "866:7:3",
												"nodeType": "VariableDeclaration",
												"scope": 438,
												"src": "858:15:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 435,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "858:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "857:17:3"
									},
									"src": "825:50:3"
								},
								{
									"documentation": {
										"id": 439,
										"nodeType": "StructuredDocumentation",
										"src": "881:82:3",
										"text": " @dev The owner is not a valid owner account. (eg. `address(0)`)"
									},
									"errorSelector": "1e4fbdf7",
									"id": 443,
									"name": "OwnableInvalidOwner",
									"nameLocation": "974:19:3",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 442,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 441,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1002:5:3",
												"nodeType": "VariableDeclaration",
												"scope": 443,
												"src": "994:13:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 440,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "994:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "993:15:3"
									},
									"src": "968:41:3"
								},
								{
									"anonymous": false,
									"eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
									"id": 449,
									"name": "OwnershipTransferred",
									"nameLocation": "1021:20:3",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 448,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 445,
												"indexed": true,
												"mutability": "mutable",
												"name": "previousOwner",
												"nameLocation": "1058:13:3",
												"nodeType": "VariableDeclaration",
												"scope": 449,
												"src": "1042:29:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 444,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1042:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 447,
												"indexed": true,
												"mutability": "mutable",
												"name": "newOwner",
												"nameLocation": "1089:8:3",
												"nodeType": "VariableDeclaration",
												"scope": 449,
												"src": "1073:24:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 446,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1073:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1041:57:3"
									},
									"src": "1015:84:3"
								},
								{
									"body": {
										"id": 474,
										"nodeType": "Block",
										"src": "1259:153:3",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 460,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 455,
														"name": "initialOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 452,
														"src": "1273:12:3",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 458,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1297:1:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 457,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "1289:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 456,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "1289:7:3",
																"typeDescriptions": {}
															}
														},
														"id": 459,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "1289:10:3",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "1273:26:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 469,
												"nodeType": "IfStatement",
												"src": "1269:95:3",
												"trueBody": {
													"id": 468,
													"nodeType": "Block",
													"src": "1301:63:3",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 464,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "1350:1:3",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 463,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "1342:7:3",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 462,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "1342:7:3",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 465,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1342:10:3",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 461,
																	"name": "OwnableInvalidOwner",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 443,
																	"src": "1322:19:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 466,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1322:31:3",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 467,
															"nodeType": "RevertStatement",
															"src": "1315:38:3"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 471,
															"name": "initialOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 452,
															"src": "1392:12:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 470,
														"name": "_transferOwnership",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 571,
														"src": "1373:18:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
															"typeString": "function (address)"
														}
													},
													"id": 472,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1373:32:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 473,
												"nodeType": "ExpressionStatement",
												"src": "1373:32:3"
											}
										]
									},
									"documentation": {
										"id": 450,
										"nodeType": "StructuredDocumentation",
										"src": "1105:115:3",
										"text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner."
									},
									"id": 475,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 453,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 452,
												"mutability": "mutable",
												"name": "initialOwner",
												"nameLocation": "1245:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 475,
												"src": "1237:20:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 451,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1237:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1236:22:3"
									},
									"returnParameters": {
										"id": 454,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1259:0:3"
									},
									"scope": 572,
									"src": "1225:187:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 482,
										"nodeType": "Block",
										"src": "1521:41:3",
										"statements": [
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 478,
														"name": "_checkOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 509,
														"src": "1531:11:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 479,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1531:13:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 480,
												"nodeType": "ExpressionStatement",
												"src": "1531:13:3"
											},
											{
												"id": 481,
												"nodeType": "PlaceholderStatement",
												"src": "1554:1:3"
											}
										]
									},
									"documentation": {
										"id": 476,
										"nodeType": "StructuredDocumentation",
										"src": "1418:77:3",
										"text": " @dev Throws if called by any account other than the owner."
									},
									"id": 483,
									"name": "onlyOwner",
									"nameLocation": "1509:9:3",
									"nodeType": "ModifierDefinition",
									"parameters": {
										"id": 477,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1518:2:3"
									},
									"src": "1500:62:3",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 491,
										"nodeType": "Block",
										"src": "1693:30:3",
										"statements": [
											{
												"expression": {
													"id": 489,
													"name": "_owner",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 433,
													"src": "1710:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 488,
												"id": 490,
												"nodeType": "Return",
												"src": "1703:13:3"
											}
										]
									},
									"documentation": {
										"id": 484,
										"nodeType": "StructuredDocumentation",
										"src": "1568:65:3",
										"text": " @dev Returns the address of the current owner."
									},
									"functionSelector": "8da5cb5b",
									"id": 492,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "owner",
									"nameLocation": "1647:5:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 485,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1652:2:3"
									},
									"returnParameters": {
										"id": 488,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 487,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 492,
												"src": "1684:7:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 486,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1684:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1683:9:3"
									},
									"scope": 572,
									"src": "1638:85:3",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 508,
										"nodeType": "Block",
										"src": "1841:117:3",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 500,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 496,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 492,
															"src": "1855:5:3",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																"typeString": "function () view returns (address)"
															}
														},
														"id": 497,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "1855:7:3",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 498,
															"name": "_msgSender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2871,
															"src": "1866:10:3",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																"typeString": "function () view returns (address)"
															}
														},
														"id": 499,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "1866:12:3",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "1855:23:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 507,
												"nodeType": "IfStatement",
												"src": "1851:101:3",
												"trueBody": {
													"id": 506,
													"nodeType": "Block",
													"src": "1880:72:3",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"id": 502,
																			"name": "_msgSender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2871,
																			"src": "1928:10:3",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																				"typeString": "function () view returns (address)"
																			}
																		},
																		"id": 503,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1928:12:3",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 501,
																	"name": "OwnableUnauthorizedAccount",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 438,
																	"src": "1901:26:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 504,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1901:40:3",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 505,
															"nodeType": "RevertStatement",
															"src": "1894:47:3"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 493,
										"nodeType": "StructuredDocumentation",
										"src": "1729:62:3",
										"text": " @dev Throws if the sender is not the owner."
									},
									"id": 509,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_checkOwner",
									"nameLocation": "1805:11:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 494,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1816:2:3"
									},
									"returnParameters": {
										"id": 495,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1841:0:3"
									},
									"scope": 572,
									"src": "1796:162:3",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 522,
										"nodeType": "Block",
										"src": "2347:47:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 518,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2384:1:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 517,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "2376:7:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 516,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "2376:7:3",
																	"typeDescriptions": {}
																}
															},
															"id": 519,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2376:10:3",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 515,
														"name": "_transferOwnership",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 571,
														"src": "2357:18:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
															"typeString": "function (address)"
														}
													},
													"id": 520,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2357:30:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 521,
												"nodeType": "ExpressionStatement",
												"src": "2357:30:3"
											}
										]
									},
									"documentation": {
										"id": 510,
										"nodeType": "StructuredDocumentation",
										"src": "1964:324:3",
										"text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."
									},
									"functionSelector": "715018a6",
									"id": 523,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 513,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 512,
												"name": "onlyOwner",
												"nameLocations": [
													"2337:9:3"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 483,
												"src": "2337:9:3"
											},
											"nodeType": "ModifierInvocation",
											"src": "2337:9:3"
										}
									],
									"name": "renounceOwnership",
									"nameLocation": "2302:17:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 511,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2319:2:3"
									},
									"returnParameters": {
										"id": 514,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2347:0:3"
									},
									"scope": 572,
									"src": "2293:101:3",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 550,
										"nodeType": "Block",
										"src": "2613:145:3",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 536,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 531,
														"name": "newOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 526,
														"src": "2627:8:3",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 534,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2647:1:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 533,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "2639:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 532,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "2639:7:3",
																"typeDescriptions": {}
															}
														},
														"id": 535,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2639:10:3",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "2627:22:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 545,
												"nodeType": "IfStatement",
												"src": "2623:91:3",
												"trueBody": {
													"id": 544,
													"nodeType": "Block",
													"src": "2651:63:3",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 540,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "2700:1:3",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 539,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "2692:7:3",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 538,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "2692:7:3",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 541,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2692:10:3",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 537,
																	"name": "OwnableInvalidOwner",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 443,
																	"src": "2672:19:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 542,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2672:31:3",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 543,
															"nodeType": "RevertStatement",
															"src": "2665:38:3"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 547,
															"name": "newOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 526,
															"src": "2742:8:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 546,
														"name": "_transferOwnership",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 571,
														"src": "2723:18:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
															"typeString": "function (address)"
														}
													},
													"id": 548,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2723:28:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 549,
												"nodeType": "ExpressionStatement",
												"src": "2723:28:3"
											}
										]
									},
									"documentation": {
										"id": 524,
										"nodeType": "StructuredDocumentation",
										"src": "2400:138:3",
										"text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."
									},
									"functionSelector": "f2fde38b",
									"id": 551,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 529,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 528,
												"name": "onlyOwner",
												"nameLocations": [
													"2603:9:3"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 483,
												"src": "2603:9:3"
											},
											"nodeType": "ModifierInvocation",
											"src": "2603:9:3"
										}
									],
									"name": "transferOwnership",
									"nameLocation": "2552:17:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 527,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 526,
												"mutability": "mutable",
												"name": "newOwner",
												"nameLocation": "2578:8:3",
												"nodeType": "VariableDeclaration",
												"scope": 551,
												"src": "2570:16:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 525,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2570:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2569:18:3"
									},
									"returnParameters": {
										"id": 530,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2613:0:3"
									},
									"scope": 572,
									"src": "2543:215:3",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 570,
										"nodeType": "Block",
										"src": "2975:124:3",
										"statements": [
											{
												"assignments": [
													558
												],
												"declarations": [
													{
														"constant": false,
														"id": 558,
														"mutability": "mutable",
														"name": "oldOwner",
														"nameLocation": "2993:8:3",
														"nodeType": "VariableDeclaration",
														"scope": 570,
														"src": "2985:16:3",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 557,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "2985:7:3",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 560,
												"initialValue": {
													"id": 559,
													"name": "_owner",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 433,
													"src": "3004:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2985:25:3"
											},
											{
												"expression": {
													"id": 563,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 561,
														"name": "_owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 433,
														"src": "3020:6:3",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 562,
														"name": "newOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 554,
														"src": "3029:8:3",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "3020:17:3",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 564,
												"nodeType": "ExpressionStatement",
												"src": "3020:17:3"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 566,
															"name": "oldOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 558,
															"src": "3073:8:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 567,
															"name": "newOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 554,
															"src": "3083:8:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 565,
														"name": "OwnershipTransferred",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 449,
														"src": "3052:20:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
															"typeString": "function (address,address)"
														}
													},
													"id": 568,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3052:40:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 569,
												"nodeType": "EmitStatement",
												"src": "3047:45:3"
											}
										]
									},
									"documentation": {
										"id": 552,
										"nodeType": "StructuredDocumentation",
										"src": "2764:143:3",
										"text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."
									},
									"id": 571,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_transferOwnership",
									"nameLocation": "2921:18:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 555,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 554,
												"mutability": "mutable",
												"name": "newOwner",
												"nameLocation": "2948:8:3",
												"nodeType": "VariableDeclaration",
												"scope": 571,
												"src": "2940:16:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 553,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2940:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2939:18:3"
									},
									"returnParameters": {
										"id": 556,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2975:0:3"
									},
									"scope": 572,
									"src": "2912:187:3",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								}
							],
							"scope": 573,
							"src": "663:2438:3",
							"usedErrors": [
								438,
								443
							],
							"usedEvents": [
								449
							]
						}
					],
					"src": "102:3000:3"
				},
				"id": 3
			},
			"@openzeppelin/contracts/interfaces/IERC2981.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/interfaces/IERC2981.sol",
					"exportedSymbols": {
						"IERC165": [
							3172
						],
						"IERC2981": [
							592
						]
					},
					"id": 593,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 574,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "107:24:4"
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
							"file": "../utils/introspection/IERC165.sol",
							"id": 576,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 593,
							"sourceUnit": 3173,
							"src": "133:59:4",
							"symbolAliases": [
								{
									"foreign": {
										"id": 575,
										"name": "IERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3172,
										"src": "141:7:4",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 578,
										"name": "IERC165",
										"nameLocations": [
											"476:7:4"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3172,
										"src": "476:7:4"
									},
									"id": 579,
									"nodeType": "InheritanceSpecifier",
									"src": "476:7:4"
								}
							],
							"canonicalName": "IERC2981",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 577,
								"nodeType": "StructuredDocumentation",
								"src": "194:259:4",
								"text": " @dev Interface for the NFT Royalty Standard.\n A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n support for royalty payments across all NFT marketplaces and ecosystem participants."
							},
							"fullyImplemented": false,
							"id": 592,
							"linearizedBaseContracts": [
								592,
								3172
							],
							"name": "IERC2981",
							"nameLocation": "464:8:4",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 580,
										"nodeType": "StructuredDocumentation",
										"src": "490:231:4",
										"text": " @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n exchange. The royalty amount is denominated and should be paid in that same unit of exchange."
									},
									"functionSelector": "2a55205a",
									"id": 591,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "royaltyInfo",
									"nameLocation": "735:11:4",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 585,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 582,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "764:7:4",
												"nodeType": "VariableDeclaration",
												"scope": 591,
												"src": "756:15:4",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 581,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "756:7:4",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 584,
												"mutability": "mutable",
												"name": "salePrice",
												"nameLocation": "789:9:4",
												"nodeType": "VariableDeclaration",
												"scope": 591,
												"src": "781:17:4",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 583,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "781:7:4",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "746:58:4"
									},
									"returnParameters": {
										"id": 590,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 587,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "836:8:4",
												"nodeType": "VariableDeclaration",
												"scope": 591,
												"src": "828:16:4",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 586,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "828:7:4",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 589,
												"mutability": "mutable",
												"name": "royaltyAmount",
												"nameLocation": "854:13:4",
												"nodeType": "VariableDeclaration",
												"scope": 591,
												"src": "846:21:4",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 588,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "846:7:4",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "827:41:4"
									},
									"scope": 592,
									"src": "726:143:4",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 593,
							"src": "454:417:4",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "107:765:4"
				},
				"id": 4
			},
			"@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
					"exportedSymbols": {
						"IERC1155Errors": [
							729
						],
						"IERC20Errors": [
							634
						],
						"IERC721Errors": [
							682
						]
					},
					"id": 730,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 594,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "112:24:5"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC20Errors",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 595,
								"nodeType": "StructuredDocumentation",
								"src": "138:139:5",
								"text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."
							},
							"fullyImplemented": true,
							"id": 634,
							"linearizedBaseContracts": [
								634
							],
							"name": "IERC20Errors",
							"nameLocation": "288:12:5",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 596,
										"nodeType": "StructuredDocumentation",
										"src": "307:309:5",
										"text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."
									},
									"errorSelector": "e450d38c",
									"id": 604,
									"name": "ERC20InsufficientBalance",
									"nameLocation": "627:24:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 603,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 598,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "660:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 604,
												"src": "652:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 597,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "652:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 600,
												"mutability": "mutable",
												"name": "balance",
												"nameLocation": "676:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 604,
												"src": "668:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 599,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "668:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 602,
												"mutability": "mutable",
												"name": "needed",
												"nameLocation": "693:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 604,
												"src": "685:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 601,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "685:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "651:49:5"
									},
									"src": "621:80:5"
								},
								{
									"documentation": {
										"id": 605,
										"nodeType": "StructuredDocumentation",
										"src": "707:152:5",
										"text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
									},
									"errorSelector": "96c6fd1e",
									"id": 609,
									"name": "ERC20InvalidSender",
									"nameLocation": "870:18:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 608,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 607,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "897:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 609,
												"src": "889:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 606,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "889:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "888:16:5"
									},
									"src": "864:41:5"
								},
								{
									"documentation": {
										"id": 610,
										"nodeType": "StructuredDocumentation",
										"src": "911:159:5",
										"text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
									},
									"errorSelector": "ec442f05",
									"id": 614,
									"name": "ERC20InvalidReceiver",
									"nameLocation": "1081:20:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 613,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 612,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "1110:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 614,
												"src": "1102:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 611,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1102:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1101:18:5"
									},
									"src": "1075:45:5"
								},
								{
									"documentation": {
										"id": 615,
										"nodeType": "StructuredDocumentation",
										"src": "1126:345:5",
										"text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."
									},
									"errorSelector": "fb8f41b2",
									"id": 623,
									"name": "ERC20InsufficientAllowance",
									"nameLocation": "1482:26:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 622,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 617,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1517:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 623,
												"src": "1509:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 616,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1509:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 619,
												"mutability": "mutable",
												"name": "allowance",
												"nameLocation": "1534:9:5",
												"nodeType": "VariableDeclaration",
												"scope": 623,
												"src": "1526:17:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 618,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1526:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 621,
												"mutability": "mutable",
												"name": "needed",
												"nameLocation": "1553:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 623,
												"src": "1545:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 620,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1545:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1508:52:5"
									},
									"src": "1476:85:5"
								},
								{
									"documentation": {
										"id": 624,
										"nodeType": "StructuredDocumentation",
										"src": "1567:174:5",
										"text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
									},
									"errorSelector": "e602df05",
									"id": 628,
									"name": "ERC20InvalidApprover",
									"nameLocation": "1752:20:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 627,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 626,
												"mutability": "mutable",
												"name": "approver",
												"nameLocation": "1781:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 628,
												"src": "1773:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 625,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1773:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1772:18:5"
									},
									"src": "1746:45:5"
								},
								{
									"documentation": {
										"id": 629,
										"nodeType": "StructuredDocumentation",
										"src": "1797:195:5",
										"text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."
									},
									"errorSelector": "94280d62",
									"id": 633,
									"name": "ERC20InvalidSpender",
									"nameLocation": "2003:19:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 632,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 631,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2031:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 633,
												"src": "2023:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 630,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2023:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2022:17:5"
									},
									"src": "1997:43:5"
								}
							],
							"scope": 730,
							"src": "278:1764:5",
							"usedErrors": [
								604,
								609,
								614,
								623,
								628,
								633
							],
							"usedEvents": []
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC721Errors",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 635,
								"nodeType": "StructuredDocumentation",
								"src": "2044:141:5",
								"text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."
							},
							"fullyImplemented": true,
							"id": 682,
							"linearizedBaseContracts": [
								682
							],
							"name": "IERC721Errors",
							"nameLocation": "2196:13:5",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 636,
										"nodeType": "StructuredDocumentation",
										"src": "2216:219:5",
										"text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."
									},
									"errorSelector": "89c62b64",
									"id": 640,
									"name": "ERC721InvalidOwner",
									"nameLocation": "2446:18:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 639,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 638,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "2473:5:5",
												"nodeType": "VariableDeclaration",
												"scope": 640,
												"src": "2465:13:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 637,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2465:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2464:15:5"
									},
									"src": "2440:40:5"
								},
								{
									"documentation": {
										"id": 641,
										"nodeType": "StructuredDocumentation",
										"src": "2486:132:5",
										"text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."
									},
									"errorSelector": "7e273289",
									"id": 645,
									"name": "ERC721NonexistentToken",
									"nameLocation": "2629:22:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 644,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 643,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2660:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 645,
												"src": "2652:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 642,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2652:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2651:17:5"
									},
									"src": "2623:46:5"
								},
								{
									"documentation": {
										"id": 646,
										"nodeType": "StructuredDocumentation",
										"src": "2675:289:5",
										"text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."
									},
									"errorSelector": "64283d7b",
									"id": 654,
									"name": "ERC721IncorrectOwner",
									"nameLocation": "2975:20:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 653,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 648,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "3004:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 654,
												"src": "2996:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 647,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2996:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 650,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "3020:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 654,
												"src": "3012:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 649,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3012:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 652,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "3037:5:5",
												"nodeType": "VariableDeclaration",
												"scope": 654,
												"src": "3029:13:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 651,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3029:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2995:48:5"
									},
									"src": "2969:75:5"
								},
								{
									"documentation": {
										"id": 655,
										"nodeType": "StructuredDocumentation",
										"src": "3050:152:5",
										"text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
									},
									"errorSelector": "73c6ac6e",
									"id": 659,
									"name": "ERC721InvalidSender",
									"nameLocation": "3213:19:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 658,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 657,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "3241:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 659,
												"src": "3233:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 656,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3233:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3232:16:5"
									},
									"src": "3207:42:5"
								},
								{
									"documentation": {
										"id": 660,
										"nodeType": "StructuredDocumentation",
										"src": "3255:159:5",
										"text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
									},
									"errorSelector": "64a0ae92",
									"id": 664,
									"name": "ERC721InvalidReceiver",
									"nameLocation": "3425:21:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 663,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 662,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "3455:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 664,
												"src": "3447:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 661,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3447:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3446:18:5"
									},
									"src": "3419:46:5"
								},
								{
									"documentation": {
										"id": 665,
										"nodeType": "StructuredDocumentation",
										"src": "3471:247:5",
										"text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."
									},
									"errorSelector": "177e802f",
									"id": 671,
									"name": "ERC721InsufficientApproval",
									"nameLocation": "3729:26:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 670,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 667,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "3764:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 671,
												"src": "3756:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 666,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3756:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 669,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "3782:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 671,
												"src": "3774:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 668,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3774:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3755:35:5"
									},
									"src": "3723:68:5"
								},
								{
									"documentation": {
										"id": 672,
										"nodeType": "StructuredDocumentation",
										"src": "3797:174:5",
										"text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
									},
									"errorSelector": "a9fbf51f",
									"id": 676,
									"name": "ERC721InvalidApprover",
									"nameLocation": "3982:21:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 675,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 674,
												"mutability": "mutable",
												"name": "approver",
												"nameLocation": "4012:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 676,
												"src": "4004:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 673,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4004:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4003:18:5"
									},
									"src": "3976:46:5"
								},
								{
									"documentation": {
										"id": 677,
										"nodeType": "StructuredDocumentation",
										"src": "4028:197:5",
										"text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
									},
									"errorSelector": "5b08ba18",
									"id": 681,
									"name": "ERC721InvalidOperator",
									"nameLocation": "4236:21:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 680,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 679,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "4266:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 681,
												"src": "4258:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 678,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4258:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4257:18:5"
									},
									"src": "4230:46:5"
								}
							],
							"scope": 730,
							"src": "2186:2092:5",
							"usedErrors": [
								640,
								645,
								654,
								659,
								664,
								671,
								676,
								681
							],
							"usedEvents": []
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC1155Errors",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 683,
								"nodeType": "StructuredDocumentation",
								"src": "4280:143:5",
								"text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."
							},
							"fullyImplemented": true,
							"id": 729,
							"linearizedBaseContracts": [
								729
							],
							"name": "IERC1155Errors",
							"nameLocation": "4434:14:5",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 684,
										"nodeType": "StructuredDocumentation",
										"src": "4455:361:5",
										"text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."
									},
									"errorSelector": "03dee4c5",
									"id": 694,
									"name": "ERC1155InsufficientBalance",
									"nameLocation": "4827:26:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 693,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 686,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "4862:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 694,
												"src": "4854:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 685,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4854:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 688,
												"mutability": "mutable",
												"name": "balance",
												"nameLocation": "4878:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 694,
												"src": "4870:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 687,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4870:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 690,
												"mutability": "mutable",
												"name": "needed",
												"nameLocation": "4895:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 694,
												"src": "4887:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 689,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4887:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 692,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4911:7:5",
												"nodeType": "VariableDeclaration",
												"scope": 694,
												"src": "4903:15:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 691,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4903:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4853:66:5"
									},
									"src": "4821:99:5"
								},
								{
									"documentation": {
										"id": 695,
										"nodeType": "StructuredDocumentation",
										"src": "4926:152:5",
										"text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
									},
									"errorSelector": "01a83514",
									"id": 699,
									"name": "ERC1155InvalidSender",
									"nameLocation": "5089:20:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 698,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 697,
												"mutability": "mutable",
												"name": "sender",
												"nameLocation": "5118:6:5",
												"nodeType": "VariableDeclaration",
												"scope": 699,
												"src": "5110:14:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 696,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5110:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5109:16:5"
									},
									"src": "5083:43:5"
								},
								{
									"documentation": {
										"id": 700,
										"nodeType": "StructuredDocumentation",
										"src": "5132:159:5",
										"text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
									},
									"errorSelector": "57f447ce",
									"id": 704,
									"name": "ERC1155InvalidReceiver",
									"nameLocation": "5302:22:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 703,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 702,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "5333:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 704,
												"src": "5325:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 701,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5325:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5324:18:5"
									},
									"src": "5296:47:5"
								},
								{
									"documentation": {
										"id": 705,
										"nodeType": "StructuredDocumentation",
										"src": "5349:256:5",
										"text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."
									},
									"errorSelector": "e237d922",
									"id": 711,
									"name": "ERC1155MissingApprovalForAll",
									"nameLocation": "5616:28:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 710,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 707,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "5653:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 711,
												"src": "5645:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 706,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5645:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 709,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "5671:5:5",
												"nodeType": "VariableDeclaration",
												"scope": 711,
												"src": "5663:13:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 708,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5663:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5644:33:5"
									},
									"src": "5610:68:5"
								},
								{
									"documentation": {
										"id": 712,
										"nodeType": "StructuredDocumentation",
										"src": "5684:174:5",
										"text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
									},
									"errorSelector": "3e31884e",
									"id": 716,
									"name": "ERC1155InvalidApprover",
									"nameLocation": "5869:22:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 715,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 714,
												"mutability": "mutable",
												"name": "approver",
												"nameLocation": "5900:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 716,
												"src": "5892:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 713,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5892:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5891:18:5"
									},
									"src": "5863:47:5"
								},
								{
									"documentation": {
										"id": 717,
										"nodeType": "StructuredDocumentation",
										"src": "5916:197:5",
										"text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
									},
									"errorSelector": "ced3e100",
									"id": 721,
									"name": "ERC1155InvalidOperator",
									"nameLocation": "6124:22:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 720,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 719,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "6155:8:5",
												"nodeType": "VariableDeclaration",
												"scope": 721,
												"src": "6147:16:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 718,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6147:7:5",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6146:18:5"
									},
									"src": "6118:47:5"
								},
								{
									"documentation": {
										"id": 722,
										"nodeType": "StructuredDocumentation",
										"src": "6171:280:5",
										"text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"
									},
									"errorSelector": "5b059991",
									"id": 728,
									"name": "ERC1155InvalidArrayLength",
									"nameLocation": "6462:25:5",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 727,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 724,
												"mutability": "mutable",
												"name": "idsLength",
												"nameLocation": "6496:9:5",
												"nodeType": "VariableDeclaration",
												"scope": 728,
												"src": "6488:17:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 723,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6488:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 726,
												"mutability": "mutable",
												"name": "valuesLength",
												"nameLocation": "6515:12:5",
												"nodeType": "VariableDeclaration",
												"scope": 728,
												"src": "6507:20:5",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 725,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6507:7:5",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6487:41:5"
									},
									"src": "6456:73:5"
								}
							],
							"scope": 730,
							"src": "4424:2107:5",
							"usedErrors": [
								694,
								699,
								704,
								711,
								716,
								721,
								728
							],
							"usedEvents": []
						}
					],
					"src": "112:6420:5"
				},
				"id": 5
			},
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
					"exportedSymbols": {
						"IERC20": [
							807
						]
					},
					"id": 808,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 731,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "106:24:6"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC20",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 732,
								"nodeType": "StructuredDocumentation",
								"src": "132:70:6",
								"text": " @dev Interface of the ERC20 standard as defined in the EIP."
							},
							"fullyImplemented": false,
							"id": 807,
							"linearizedBaseContracts": [
								807
							],
							"name": "IERC20",
							"nameLocation": "213:6:6",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"anonymous": false,
									"documentation": {
										"id": 733,
										"nodeType": "StructuredDocumentation",
										"src": "226:158:6",
										"text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
									},
									"eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
									"id": 741,
									"name": "Transfer",
									"nameLocation": "395:8:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 740,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 735,
												"indexed": true,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "420:4:6",
												"nodeType": "VariableDeclaration",
												"scope": 741,
												"src": "404:20:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 734,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "404:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 737,
												"indexed": true,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "442:2:6",
												"nodeType": "VariableDeclaration",
												"scope": 741,
												"src": "426:18:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 736,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "426:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 739,
												"indexed": false,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "454:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 741,
												"src": "446:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 738,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "446:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "403:57:6"
									},
									"src": "389:72:6"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 742,
										"nodeType": "StructuredDocumentation",
										"src": "467:148:6",
										"text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
									},
									"eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
									"id": 750,
									"name": "Approval",
									"nameLocation": "626:8:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 749,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 744,
												"indexed": true,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "651:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 750,
												"src": "635:21:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 743,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "635:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 746,
												"indexed": true,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "674:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 750,
												"src": "658:23:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 745,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "658:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 748,
												"indexed": false,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "691:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 750,
												"src": "683:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 747,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "683:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "634:63:6"
									},
									"src": "620:78:6"
								},
								{
									"documentation": {
										"id": 751,
										"nodeType": "StructuredDocumentation",
										"src": "704:65:6",
										"text": " @dev Returns the value of tokens in existence."
									},
									"functionSelector": "18160ddd",
									"id": 756,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "totalSupply",
									"nameLocation": "783:11:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 752,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "794:2:6"
									},
									"returnParameters": {
										"id": 755,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 754,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 756,
												"src": "820:7:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 753,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "820:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "819:9:6"
									},
									"scope": 807,
									"src": "774:55:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 757,
										"nodeType": "StructuredDocumentation",
										"src": "835:71:6",
										"text": " @dev Returns the value of tokens owned by `account`."
									},
									"functionSelector": "70a08231",
									"id": 764,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "balanceOf",
									"nameLocation": "920:9:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 760,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 759,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "938:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 764,
												"src": "930:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 758,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "930:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "929:17:6"
									},
									"returnParameters": {
										"id": 763,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 762,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 764,
												"src": "970:7:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 761,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "970:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "969:9:6"
									},
									"scope": 807,
									"src": "911:68:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 765,
										"nodeType": "StructuredDocumentation",
										"src": "985:213:6",
										"text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
									},
									"functionSelector": "a9059cbb",
									"id": 774,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "transfer",
									"nameLocation": "1212:8:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 770,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 767,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1229:2:6",
												"nodeType": "VariableDeclaration",
												"scope": 774,
												"src": "1221:10:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 766,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1221:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 769,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1241:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 774,
												"src": "1233:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 768,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1233:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1220:27:6"
									},
									"returnParameters": {
										"id": 773,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 772,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 774,
												"src": "1266:4:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 771,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1266:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1265:6:6"
									},
									"scope": 807,
									"src": "1203:69:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 775,
										"nodeType": "StructuredDocumentation",
										"src": "1278:264:6",
										"text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
									},
									"functionSelector": "dd62ed3e",
									"id": 784,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "allowance",
									"nameLocation": "1556:9:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 780,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 777,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1574:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 784,
												"src": "1566:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 776,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1566:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 779,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1589:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 784,
												"src": "1581:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 778,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1581:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1565:32:6"
									},
									"returnParameters": {
										"id": 783,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 782,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 784,
												"src": "1621:7:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 781,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1621:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1620:9:6"
									},
									"scope": 807,
									"src": "1547:83:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 785,
										"nodeType": "StructuredDocumentation",
										"src": "1636:667:6",
										"text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
									},
									"functionSelector": "095ea7b3",
									"id": 794,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "approve",
									"nameLocation": "2317:7:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 790,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 787,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2333:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 794,
												"src": "2325:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 786,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2325:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 789,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2350:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 794,
												"src": "2342:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 788,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2342:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2324:32:6"
									},
									"returnParameters": {
										"id": 793,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 792,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 794,
												"src": "2375:4:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 791,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2375:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2374:6:6"
									},
									"scope": 807,
									"src": "2308:73:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 795,
										"nodeType": "StructuredDocumentation",
										"src": "2387:297:6",
										"text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
									},
									"functionSelector": "23b872dd",
									"id": 806,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "transferFrom",
									"nameLocation": "2698:12:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 802,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 797,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "2719:4:6",
												"nodeType": "VariableDeclaration",
												"scope": 806,
												"src": "2711:12:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 796,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2711:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 799,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "2733:2:6",
												"nodeType": "VariableDeclaration",
												"scope": 806,
												"src": "2725:10:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 798,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2725:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 801,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2745:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 806,
												"src": "2737:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 800,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2737:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2710:41:6"
									},
									"returnParameters": {
										"id": 805,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 804,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 806,
												"src": "2770:4:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 803,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2770:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2769:6:6"
									},
									"scope": 807,
									"src": "2689:87:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 808,
							"src": "203:2575:6",
							"usedErrors": [],
							"usedEvents": [
								741,
								750
							]
						}
					],
					"src": "106:2673:6"
				},
				"id": 6
			},
			"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
					"exportedSymbols": {
						"IERC20Permit": [
							843
						]
					},
					"id": 844,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 809,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "123:24:7"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC20Permit",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 810,
								"nodeType": "StructuredDocumentation",
								"src": "149:1963:7",
								"text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n     doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n     token.safeTransferFrom(msg.sender, address(this), value);\n     ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."
							},
							"fullyImplemented": false,
							"id": 843,
							"linearizedBaseContracts": [
								843
							],
							"name": "IERC20Permit",
							"nameLocation": "2123:12:7",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 811,
										"nodeType": "StructuredDocumentation",
										"src": "2142:850:7",
										"text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."
									},
									"functionSelector": "d505accf",
									"id": 828,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "permit",
									"nameLocation": "3006:6:7",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 826,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 813,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "3030:5:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3022:13:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 812,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3022:7:7",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 815,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "3053:7:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3045:15:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 814,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3045:7:7",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 817,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "3078:5:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3070:13:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 816,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3070:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 819,
												"mutability": "mutable",
												"name": "deadline",
												"nameLocation": "3101:8:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3093:16:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 818,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3093:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 821,
												"mutability": "mutable",
												"name": "v",
												"nameLocation": "3125:1:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3119:7:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 820,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "3119:5:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 823,
												"mutability": "mutable",
												"name": "r",
												"nameLocation": "3144:1:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3136:9:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 822,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3136:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 825,
												"mutability": "mutable",
												"name": "s",
												"nameLocation": "3163:1:7",
												"nodeType": "VariableDeclaration",
												"scope": 828,
												"src": "3155:9:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 824,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3155:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3012:158:7"
									},
									"returnParameters": {
										"id": 827,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3179:0:7"
									},
									"scope": 843,
									"src": "2997:183:7",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 829,
										"nodeType": "StructuredDocumentation",
										"src": "3186:294:7",
										"text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."
									},
									"functionSelector": "7ecebe00",
									"id": 836,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "nonces",
									"nameLocation": "3494:6:7",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 832,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 831,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "3509:5:7",
												"nodeType": "VariableDeclaration",
												"scope": 836,
												"src": "3501:13:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 830,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3501:7:7",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3500:15:7"
									},
									"returnParameters": {
										"id": 835,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 834,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 836,
												"src": "3539:7:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 833,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3539:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3538:9:7"
									},
									"scope": 843,
									"src": "3485:63:7",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 837,
										"nodeType": "StructuredDocumentation",
										"src": "3554:128:7",
										"text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
									},
									"functionSelector": "3644e515",
									"id": 842,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "DOMAIN_SEPARATOR",
									"nameLocation": "3749:16:7",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 838,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3765:2:7"
									},
									"returnParameters": {
										"id": 841,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 840,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 842,
												"src": "3791:7:7",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 839,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3791:7:7",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3790:9:7"
									},
									"scope": 843,
									"src": "3740:60:7",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 844,
							"src": "2113:1689:7",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "123:3680:7"
				},
				"id": 7
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
					"exportedSymbols": {
						"Address": [
							2812
						],
						"IERC20": [
							807
						],
						"IERC20Permit": [
							843
						],
						"SafeERC20": [
							1133
						]
					},
					"id": 1134,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 845,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "115:24:8"
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
							"file": "../IERC20.sol",
							"id": 847,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1134,
							"sourceUnit": 808,
							"src": "141:37:8",
							"symbolAliases": [
								{
									"foreign": {
										"id": 846,
										"name": "IERC20",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 807,
										"src": "149:6:8",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
							"file": "../extensions/IERC20Permit.sol",
							"id": 849,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1134,
							"sourceUnit": 844,
							"src": "179:60:8",
							"symbolAliases": [
								{
									"foreign": {
										"id": 848,
										"name": "IERC20Permit",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 843,
										"src": "187:12:8",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
							"file": "../../../utils/Address.sol",
							"id": 851,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1134,
							"sourceUnit": 2813,
							"src": "240:51:8",
							"symbolAliases": [
								{
									"foreign": {
										"id": 850,
										"name": "Address",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2812,
										"src": "248:7:8",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "SafeERC20",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 852,
								"nodeType": "StructuredDocumentation",
								"src": "293:457:8",
								"text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."
							},
							"fullyImplemented": true,
							"id": 1133,
							"linearizedBaseContracts": [
								1133
							],
							"name": "SafeERC20",
							"nameLocation": "759:9:8",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"global": false,
									"id": 855,
									"libraryName": {
										"id": 853,
										"name": "Address",
										"nameLocations": [
											"781:7:8"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2812,
										"src": "781:7:8"
									},
									"nodeType": "UsingForDirective",
									"src": "775:26:8",
									"typeName": {
										"id": 854,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "793:7:8",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									}
								},
								{
									"documentation": {
										"id": 856,
										"nodeType": "StructuredDocumentation",
										"src": "807:64:8",
										"text": " @dev An operation with an ERC20 token failed."
									},
									"errorSelector": "5274afe7",
									"id": 860,
									"name": "SafeERC20FailedOperation",
									"nameLocation": "882:24:8",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 859,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 858,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "915:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 860,
												"src": "907:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 857,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "907:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "906:15:8"
									},
									"src": "876:46:8"
								},
								{
									"documentation": {
										"id": 861,
										"nodeType": "StructuredDocumentation",
										"src": "928:71:8",
										"text": " @dev Indicates a failed `decreaseAllowance` request."
									},
									"errorSelector": "e570110f",
									"id": 869,
									"name": "SafeERC20FailedDecreaseAllowance",
									"nameLocation": "1010:32:8",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 868,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 863,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1051:7:8",
												"nodeType": "VariableDeclaration",
												"scope": 869,
												"src": "1043:15:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 862,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1043:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 865,
												"mutability": "mutable",
												"name": "currentAllowance",
												"nameLocation": "1068:16:8",
												"nodeType": "VariableDeclaration",
												"scope": 869,
												"src": "1060:24:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 864,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1060:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 867,
												"mutability": "mutable",
												"name": "requestedDecrease",
												"nameLocation": "1094:17:8",
												"nodeType": "VariableDeclaration",
												"scope": 869,
												"src": "1086:25:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 866,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1086:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1042:70:8"
									},
									"src": "1004:109:8"
								},
								{
									"body": {
										"id": 892,
										"nodeType": "Block",
										"src": "1375:88:8",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 881,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 873,
															"src": "1405:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"id": 884,
																		"name": "token",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 873,
																		"src": "1427:5:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		}
																	},
																	"id": 885,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "1433:8:8",
																	"memberName": "transfer",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 774,
																	"src": "1427:14:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																		"typeString": "function (address,uint256) external returns (bool)"
																	}
																},
																{
																	"components": [
																		{
																			"id": 886,
																			"name": "to",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 875,
																			"src": "1444:2:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		{
																			"id": 887,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 877,
																			"src": "1448:5:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 888,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "1443:11:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
																		"typeString": "tuple(address,uint256)"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																		"typeString": "function (address,uint256) external returns (bool)"
																	},
																	{
																		"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
																		"typeString": "tuple(address,uint256)"
																	}
																],
																"expression": {
																	"id": 882,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1412:3:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 883,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "1416:10:8",
																"memberName": "encodeCall",
																"nodeType": "MemberAccess",
																"src": "1412:14:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function () pure returns (bytes memory)"
																}
															},
															"id": 889,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1412:43:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 880,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1083,
														"src": "1385:19:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 890,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1385:71:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 891,
												"nodeType": "ExpressionStatement",
												"src": "1385:71:8"
											}
										]
									},
									"documentation": {
										"id": 870,
										"nodeType": "StructuredDocumentation",
										"src": "1119:179:8",
										"text": " @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."
									},
									"id": 893,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransfer",
									"nameLocation": "1312:12:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 878,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 873,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1332:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 893,
												"src": "1325:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 872,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 871,
														"name": "IERC20",
														"nameLocations": [
															"1325:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "1325:6:8"
													},
													"referencedDeclaration": 807,
													"src": "1325:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 875,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1347:2:8",
												"nodeType": "VariableDeclaration",
												"scope": 893,
												"src": "1339:10:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 874,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1339:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 877,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1359:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 893,
												"src": "1351:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 876,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1351:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1324:41:8"
									},
									"returnParameters": {
										"id": 879,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1375:0:8"
									},
									"scope": 1133,
									"src": "1303:160:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 919,
										"nodeType": "Block",
										"src": "1792:98:8",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 907,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 897,
															"src": "1822:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"id": 910,
																		"name": "token",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 897,
																		"src": "1844:5:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		}
																	},
																	"id": 911,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "1850:12:8",
																	"memberName": "transferFrom",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 806,
																	"src": "1844:18:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																		"typeString": "function (address,address,uint256) external returns (bool)"
																	}
																},
																{
																	"components": [
																		{
																			"id": 912,
																			"name": "from",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 899,
																			"src": "1865:4:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		{
																			"id": 913,
																			"name": "to",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 901,
																			"src": "1871:2:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		{
																			"id": 914,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 903,
																			"src": "1875:5:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 915,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "1864:17:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_uint256_$",
																		"typeString": "tuple(address,address,uint256)"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																		"typeString": "function (address,address,uint256) external returns (bool)"
																	},
																	{
																		"typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_uint256_$",
																		"typeString": "tuple(address,address,uint256)"
																	}
																],
																"expression": {
																	"id": 908,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1829:3:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 909,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "1833:10:8",
																"memberName": "encodeCall",
																"nodeType": "MemberAccess",
																"src": "1829:14:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function () pure returns (bytes memory)"
																}
															},
															"id": 916,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1829:53:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 906,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1083,
														"src": "1802:19:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 917,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1802:81:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 918,
												"nodeType": "ExpressionStatement",
												"src": "1802:81:8"
											}
										]
									},
									"documentation": {
										"id": 894,
										"nodeType": "StructuredDocumentation",
										"src": "1469:228:8",
										"text": " @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."
									},
									"id": 920,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "1711:16:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 904,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 897,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1735:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 920,
												"src": "1728:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 896,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 895,
														"name": "IERC20",
														"nameLocations": [
															"1728:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "1728:6:8"
													},
													"referencedDeclaration": 807,
													"src": "1728:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 899,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "1750:4:8",
												"nodeType": "VariableDeclaration",
												"scope": 920,
												"src": "1742:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 898,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1742:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 901,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1764:2:8",
												"nodeType": "VariableDeclaration",
												"scope": 920,
												"src": "1756:10:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 900,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1756:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 903,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1776:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 920,
												"src": "1768:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 902,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1768:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1727:55:8"
									},
									"returnParameters": {
										"id": 905,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1792:0:8"
									},
									"scope": 1133,
									"src": "1702:188:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 950,
										"nodeType": "Block",
										"src": "2167:139:8",
										"statements": [
											{
												"assignments": [
													932
												],
												"declarations": [
													{
														"constant": false,
														"id": 932,
														"mutability": "mutable",
														"name": "oldAllowance",
														"nameLocation": "2185:12:8",
														"nodeType": "VariableDeclaration",
														"scope": 950,
														"src": "2177:20:8",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 931,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "2177:7:8",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 941,
												"initialValue": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 937,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "2224:4:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_SafeERC20_$1133",
																		"typeString": "library SafeERC20"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_SafeERC20_$1133",
																		"typeString": "library SafeERC20"
																	}
																],
																"id": 936,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "2216:7:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 935,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "2216:7:8",
																	"typeDescriptions": {}
																}
															},
															"id": 938,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2216:13:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 939,
															"name": "spender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 926,
															"src": "2231:7:8",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"id": 933,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 924,
															"src": "2200:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														"id": 934,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "2206:9:8",
														"memberName": "allowance",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 784,
														"src": "2200:15:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
															"typeString": "function (address,address) view external returns (uint256)"
														}
													},
													"id": 940,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2200:39:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2177:62:8"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 943,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 924,
															"src": "2262:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"id": 944,
															"name": "spender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 926,
															"src": "2269:7:8",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 947,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 945,
																"name": "oldAllowance",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 932,
																"src": "2278:12:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"id": 946,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 928,
																"src": "2293:5:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "2278:20:8",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 942,
														"name": "forceApprove",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1041,
														"src": "2249:12:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (contract IERC20,address,uint256)"
														}
													},
													"id": 948,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2249:50:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 949,
												"nodeType": "ExpressionStatement",
												"src": "2249:50:8"
											}
										]
									},
									"documentation": {
										"id": 921,
										"nodeType": "StructuredDocumentation",
										"src": "1896:180:8",
										"text": " @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."
									},
									"id": 951,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeIncreaseAllowance",
									"nameLocation": "2090:21:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 929,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 924,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2119:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 951,
												"src": "2112:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 923,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 922,
														"name": "IERC20",
														"nameLocations": [
															"2112:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "2112:6:8"
													},
													"referencedDeclaration": 807,
													"src": "2112:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 926,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2134:7:8",
												"nodeType": "VariableDeclaration",
												"scope": 951,
												"src": "2126:15:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 925,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2126:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 928,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2151:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 951,
												"src": "2143:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 927,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2143:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2111:46:8"
									},
									"returnParameters": {
										"id": 930,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2167:0:8"
									},
									"scope": 1133,
									"src": "2081:225:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 993,
										"nodeType": "Block",
										"src": "2607:370:8",
										"statements": [
											{
												"id": 992,
												"nodeType": "UncheckedBlock",
												"src": "2617:354:8",
												"statements": [
													{
														"assignments": [
															963
														],
														"declarations": [
															{
																"constant": false,
																"id": 963,
																"mutability": "mutable",
																"name": "currentAllowance",
																"nameLocation": "2649:16:8",
																"nodeType": "VariableDeclaration",
																"scope": 992,
																"src": "2641:24:8",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 962,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2641:7:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 972,
														"initialValue": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 968,
																			"name": "this",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967268,
																			"src": "2692:4:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_SafeERC20_$1133",
																				"typeString": "library SafeERC20"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_SafeERC20_$1133",
																				"typeString": "library SafeERC20"
																			}
																		],
																		"id": 967,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2684:7:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 966,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "2684:7:8",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 969,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2684:13:8",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 970,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 957,
																	"src": "2699:7:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 964,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 955,
																	"src": "2668:5:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																"id": 965,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "2674:9:8",
																"memberName": "allowance",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 784,
																"src": "2668:15:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
																	"typeString": "function (address,address) view external returns (uint256)"
																}
															},
															"id": 971,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2668:39:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "2641:66:8"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 975,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 973,
																"name": "currentAllowance",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 963,
																"src": "2725:16:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"id": 974,
																"name": "requestedDecrease",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 959,
																"src": "2744:17:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "2725:36:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 983,
														"nodeType": "IfStatement",
														"src": "2721:160:8",
														"trueBody": {
															"id": 982,
															"nodeType": "Block",
															"src": "2763:118:8",
															"statements": [
																{
																	"errorCall": {
																		"arguments": [
																			{
																				"id": 977,
																				"name": "spender",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 957,
																				"src": "2821:7:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			{
																				"id": 978,
																				"name": "currentAllowance",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 963,
																				"src": "2830:16:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			{
																				"id": 979,
																				"name": "requestedDecrease",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 959,
																				"src": "2848:17:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				},
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 976,
																			"name": "SafeERC20FailedDecreaseAllowance",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 869,
																			"src": "2788:32:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
																				"typeString": "function (address,uint256,uint256) pure"
																			}
																		},
																		"id": 980,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2788:78:8",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 981,
																	"nodeType": "RevertStatement",
																	"src": "2781:85:8"
																}
															]
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 985,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 955,
																	"src": "2907:5:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																{
																	"id": 986,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 957,
																	"src": "2914:7:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 989,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 987,
																		"name": "currentAllowance",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 963,
																		"src": "2923:16:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 988,
																		"name": "requestedDecrease",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 959,
																		"src": "2942:17:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2923:36:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 984,
																"name": "forceApprove",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1041,
																"src": "2894:12:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_address_$_t_uint256_$returns$__$",
																	"typeString": "function (contract IERC20,address,uint256)"
																}
															},
															"id": 990,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2894:66:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 991,
														"nodeType": "ExpressionStatement",
														"src": "2894:66:8"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 952,
										"nodeType": "StructuredDocumentation",
										"src": "2312:192:8",
										"text": " @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n value, non-reverting calls are assumed to be successful."
									},
									"id": 994,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeDecreaseAllowance",
									"nameLocation": "2518:21:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 960,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 955,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2547:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 994,
												"src": "2540:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 954,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 953,
														"name": "IERC20",
														"nameLocations": [
															"2540:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "2540:6:8"
													},
													"referencedDeclaration": 807,
													"src": "2540:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 957,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2562:7:8",
												"nodeType": "VariableDeclaration",
												"scope": 994,
												"src": "2554:15:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 956,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2554:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 959,
												"mutability": "mutable",
												"name": "requestedDecrease",
												"nameLocation": "2579:17:8",
												"nodeType": "VariableDeclaration",
												"scope": 994,
												"src": "2571:25:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 958,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2571:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2539:58:8"
									},
									"returnParameters": {
										"id": 961,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2607:0:8"
									},
									"scope": 1133,
									"src": "2509:468:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1040,
										"nodeType": "Block",
										"src": "3373:303:8",
										"statements": [
											{
												"assignments": [
													1006
												],
												"declarations": [
													{
														"constant": false,
														"id": 1006,
														"mutability": "mutable",
														"name": "approvalCall",
														"nameLocation": "3396:12:8",
														"nodeType": "VariableDeclaration",
														"scope": 1040,
														"src": "3383:25:8",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 1005,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "3383:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1015,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"id": 1009,
																"name": "token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 998,
																"src": "3426:5:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															},
															"id": 1010,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "3432:7:8",
															"memberName": "approve",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 794,
															"src": "3426:13:8",
															"typeDescriptions": {
																"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																"typeString": "function (address,uint256) external returns (bool)"
															}
														},
														{
															"components": [
																{
																	"id": 1011,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1000,
																	"src": "3442:7:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 1012,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1002,
																	"src": "3451:5:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 1013,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "3441:16:8",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
																"typeString": "tuple(address,uint256)"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																"typeString": "function (address,uint256) external returns (bool)"
															},
															{
																"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
																"typeString": "tuple(address,uint256)"
															}
														],
														"expression": {
															"id": 1007,
															"name": "abi",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967295,
															"src": "3411:3:8",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_abi",
																"typeString": "abi"
															}
														},
														"id": 1008,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"memberLocation": "3415:10:8",
														"memberName": "encodeCall",
														"nodeType": "MemberAccess",
														"src": "3411:14:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$",
															"typeString": "function () pure returns (bytes memory)"
														}
													},
													"id": 1014,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3411:47:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3383:75:8"
											},
											{
												"condition": {
													"id": 1020,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "3473:45:8",
													"subExpression": {
														"arguments": [
															{
																"id": 1017,
																"name": "token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 998,
																"src": "3498:5:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															},
															{
																"id": 1018,
																"name": "approvalCall",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1006,
																"src": "3505:12:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																},
																{
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															],
															"id": 1016,
															"name": "_callOptionalReturnBool",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1132,
															"src": "3474:23:8",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_bytes_memory_ptr_$returns$_t_bool_$",
																"typeString": "function (contract IERC20,bytes memory) returns (bool)"
															}
														},
														"id": 1019,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3474:44:8",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1039,
												"nodeType": "IfStatement",
												"src": "3469:201:8",
												"trueBody": {
													"id": 1038,
													"nodeType": "Block",
													"src": "3520:150:8",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 1022,
																		"name": "token",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 998,
																		"src": "3554:5:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		}
																	},
																	{
																		"arguments": [
																			{
																				"expression": {
																					"id": 1025,
																					"name": "token",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 998,
																					"src": "3576:5:8",
																					"typeDescriptions": {
																						"typeIdentifier": "t_contract$_IERC20_$807",
																						"typeString": "contract IERC20"
																					}
																				},
																				"id": 1026,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "3582:7:8",
																				"memberName": "approve",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 794,
																				"src": "3576:13:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																					"typeString": "function (address,uint256) external returns (bool)"
																				}
																			},
																			{
																				"components": [
																					{
																						"id": 1027,
																						"name": "spender",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 1000,
																						"src": "3592:7:8",
																						"typeDescriptions": {
																							"typeIdentifier": "t_address",
																							"typeString": "address"
																						}
																					},
																					{
																						"hexValue": "30",
																						"id": 1028,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "3601:1:8",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					}
																				],
																				"id": 1029,
																				"isConstant": false,
																				"isInlineArray": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "TupleExpression",
																				"src": "3591:12:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_tuple$_t_address_$_t_rational_0_by_1_$",
																					"typeString": "tuple(address,int_const 0)"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																					"typeString": "function (address,uint256) external returns (bool)"
																				},
																				{
																					"typeIdentifier": "t_tuple$_t_address_$_t_rational_0_by_1_$",
																					"typeString": "tuple(address,int_const 0)"
																				}
																			],
																			"expression": {
																				"id": 1023,
																				"name": "abi",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967295,
																				"src": "3561:3:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_magic_abi",
																					"typeString": "abi"
																				}
																			},
																			"id": 1024,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"memberLocation": "3565:10:8",
																			"memberName": "encodeCall",
																			"nodeType": "MemberAccess",
																			"src": "3561:14:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$",
																				"typeString": "function () pure returns (bytes memory)"
																			}
																		},
																		"id": 1030,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "3561:43:8",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		},
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"id": 1021,
																	"name": "_callOptionalReturn",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1083,
																	"src": "3534:19:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_bytes_memory_ptr_$returns$__$",
																		"typeString": "function (contract IERC20,bytes memory)"
																	}
																},
																"id": 1031,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3534:71:8",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1032,
															"nodeType": "ExpressionStatement",
															"src": "3534:71:8"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 1034,
																		"name": "token",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 998,
																		"src": "3639:5:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		}
																	},
																	{
																		"id": 1035,
																		"name": "approvalCall",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1006,
																		"src": "3646:12:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		},
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"id": 1033,
																	"name": "_callOptionalReturn",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1083,
																	"src": "3619:19:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_bytes_memory_ptr_$returns$__$",
																		"typeString": "function (contract IERC20,bytes memory)"
																	}
																},
																"id": 1036,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3619:40:8",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1037,
															"nodeType": "ExpressionStatement",
															"src": "3619:40:8"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 995,
										"nodeType": "StructuredDocumentation",
										"src": "2983:308:8",
										"text": " @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."
									},
									"id": 1041,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "forceApprove",
									"nameLocation": "3305:12:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1003,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 998,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "3325:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1041,
												"src": "3318:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 997,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 996,
														"name": "IERC20",
														"nameLocations": [
															"3318:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "3318:6:8"
													},
													"referencedDeclaration": 807,
													"src": "3318:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1000,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "3340:7:8",
												"nodeType": "VariableDeclaration",
												"scope": 1041,
												"src": "3332:15:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 999,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3332:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1002,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "3357:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1041,
												"src": "3349:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1001,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3349:7:8",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3317:46:8"
									},
									"returnParameters": {
										"id": 1004,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3373:0:8"
									},
									"scope": 1133,
									"src": "3296:380:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1082,
										"nodeType": "Block",
										"src": "4129:559:8",
										"statements": [
											{
												"assignments": [
													1051
												],
												"declarations": [
													{
														"constant": false,
														"id": 1051,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "4491:10:8",
														"nodeType": "VariableDeclaration",
														"scope": 1082,
														"src": "4478:23:8",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 1050,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "4478:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1059,
												"initialValue": {
													"arguments": [
														{
															"id": 1057,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1047,
															"src": "4532:4:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1054,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1045,
																	"src": "4512:5:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																],
																"id": 1053,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "4504:7:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1052,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "4504:7:8",
																	"typeDescriptions": {}
																}
															},
															"id": 1055,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4504:14:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 1056,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "4519:12:8",
														"memberName": "functionCall",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 2633,
														"src": "4504:27:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$",
															"typeString": "function (address,bytes memory) returns (bytes memory)"
														}
													},
													"id": 1058,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4504:33:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4478:59:8"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1072,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 1063,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"expression": {
																"id": 1060,
																"name": "returndata",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1051,
																"src": "4551:10:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"id": 1061,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "4562:6:8",
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "4551:17:8",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "!=",
														"rightExpression": {
															"hexValue": "30",
															"id": 1062,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4572:1:8",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"src": "4551:22:8",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "&&",
													"rightExpression": {
														"id": 1071,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "!",
														"prefix": true,
														"src": "4577:31:8",
														"subExpression": {
															"arguments": [
																{
																	"id": 1066,
																	"name": "returndata",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1051,
																	"src": "4589:10:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																},
																{
																	"components": [
																		{
																			"id": 1068,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4602:4:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bool_$",
																				"typeString": "type(bool)"
																			},
																			"typeName": {
																				"id": 1067,
																				"name": "bool",
																				"nodeType": "ElementaryTypeName",
																				"src": "4602:4:8",
																				"typeDescriptions": {}
																			}
																		}
																	],
																	"id": 1069,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "4601:6:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bool_$",
																		"typeString": "type(bool)"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	},
																	{
																		"typeIdentifier": "t_type$_t_bool_$",
																		"typeString": "type(bool)"
																	}
																],
																"expression": {
																	"id": 1064,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4578:3:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 1065,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "4582:6:8",
																"memberName": "decode",
																"nodeType": "MemberAccess",
																"src": "4578:10:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
																	"typeString": "function () pure"
																}
															},
															"id": 1070,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4578:30:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "4551:57:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1081,
												"nodeType": "IfStatement",
												"src": "4547:135:8",
												"trueBody": {
													"id": 1080,
													"nodeType": "Block",
													"src": "4610:72:8",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"id": 1076,
																				"name": "token",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1045,
																				"src": "4664:5:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_contract$_IERC20_$807",
																					"typeString": "contract IERC20"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_contract$_IERC20_$807",
																					"typeString": "contract IERC20"
																				}
																			],
																			"id": 1075,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4656:7:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1074,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "4656:7:8",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1077,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4656:14:8",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1073,
																	"name": "SafeERC20FailedOperation",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 860,
																	"src": "4631:24:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1078,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4631:40:8",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1079,
															"nodeType": "RevertStatement",
															"src": "4624:47:8"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1042,
										"nodeType": "StructuredDocumentation",
										"src": "3682:372:8",
										"text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."
									},
									"id": 1083,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_callOptionalReturn",
									"nameLocation": "4068:19:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1048,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1045,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "4095:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1083,
												"src": "4088:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 1044,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1043,
														"name": "IERC20",
														"nameLocations": [
															"4088:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "4088:6:8"
													},
													"referencedDeclaration": 807,
													"src": "4088:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1047,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "4115:4:8",
												"nodeType": "VariableDeclaration",
												"scope": 1083,
												"src": "4102:17:8",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1046,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4102:5:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4087:33:8"
									},
									"returnParameters": {
										"id": 1049,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4129:0:8"
									},
									"scope": 1133,
									"src": "4059:629:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "private"
								},
								{
									"body": {
										"id": 1131,
										"nodeType": "Block",
										"src": "5278:489:8",
										"statements": [
											{
												"assignments": [
													1095,
													1097
												],
												"declarations": [
													{
														"constant": false,
														"id": 1095,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "5579:7:8",
														"nodeType": "VariableDeclaration",
														"scope": 1131,
														"src": "5574:12:8",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 1094,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "5574:4:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 1097,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "5601:10:8",
														"nodeType": "VariableDeclaration",
														"scope": 1131,
														"src": "5588:23:8",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 1096,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "5588:5:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1105,
												"initialValue": {
													"arguments": [
														{
															"id": 1103,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1089,
															"src": "5635:4:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1100,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1087,
																	"src": "5623:5:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																],
																"id": 1099,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "5615:7:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1098,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "5615:7:8",
																	"typeDescriptions": {}
																}
															},
															"id": 1101,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5615:14:8",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 1102,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "5630:4:8",
														"memberName": "call",
														"nodeType": "MemberAccess",
														"src": "5615:19:8",
														"typeDescriptions": {
															"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
															"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
														}
													},
													"id": 1104,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5615:25:8",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5573:67:8"
											},
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1129,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"id": 1120,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 1106,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1095,
															"src": "5657:7:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "&&",
														"rightExpression": {
															"components": [
																{
																	"commonType": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"id": 1118,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 1110,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"expression": {
																				"id": 1107,
																				"name": "returndata",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1097,
																				"src": "5669:10:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				}
																			},
																			"id": 1108,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberLocation": "5680:6:8",
																			"memberName": "length",
																			"nodeType": "MemberAccess",
																			"src": "5669:17:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 1109,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "5690:1:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "5669:22:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "||",
																	"rightExpression": {
																		"arguments": [
																			{
																				"id": 1113,
																				"name": "returndata",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1097,
																				"src": "5706:10:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				}
																			},
																			{
																				"components": [
																					{
																						"id": 1115,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "5719:4:8",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_bool_$",
																							"typeString": "type(bool)"
																						},
																						"typeName": {
																							"id": 1114,
																							"name": "bool",
																							"nodeType": "ElementaryTypeName",
																							"src": "5719:4:8",
																							"typeDescriptions": {}
																						}
																					}
																				],
																				"id": 1116,
																				"isConstant": false,
																				"isInlineArray": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "TupleExpression",
																				"src": "5718:6:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_bool_$",
																					"typeString": "type(bool)"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				},
																				{
																					"typeIdentifier": "t_type$_t_bool_$",
																					"typeString": "type(bool)"
																				}
																			],
																			"expression": {
																				"id": 1111,
																				"name": "abi",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967295,
																				"src": "5695:3:8",
																				"typeDescriptions": {
																					"typeIdentifier": "t_magic_abi",
																					"typeString": "abi"
																				}
																			},
																			"id": 1112,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"memberLocation": "5699:6:8",
																			"memberName": "decode",
																			"nodeType": "MemberAccess",
																			"src": "5695:10:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
																				"typeString": "function () pure"
																			}
																		},
																		"id": 1117,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "5695:30:8",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"src": "5669:56:8",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"id": 1119,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "5668:58:8",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"src": "5657:69:8",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "&&",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 1128,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"expression": {
																"expression": {
																	"arguments": [
																		{
																			"id": 1123,
																			"name": "token",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1087,
																			"src": "5738:5:8",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IERC20_$807",
																				"typeString": "contract IERC20"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_IERC20_$807",
																				"typeString": "contract IERC20"
																			}
																		],
																		"id": 1122,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "5730:7:8",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 1121,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "5730:7:8",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 1124,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "5730:14:8",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"id": 1125,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "5745:4:8",
																"memberName": "code",
																"nodeType": "MemberAccess",
																"src": "5730:19:8",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"id": 1126,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "5750:6:8",
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "5730:26:8",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": ">",
														"rightExpression": {
															"hexValue": "30",
															"id": 1127,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5759:1:8",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"src": "5730:30:8",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "5657:103:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 1093,
												"id": 1130,
												"nodeType": "Return",
												"src": "5650:110:8"
											}
										]
									},
									"documentation": {
										"id": 1084,
										"nodeType": "StructuredDocumentation",
										"src": "4694:490:8",
										"text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."
									},
									"id": 1132,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_callOptionalReturnBool",
									"nameLocation": "5198:23:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1090,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1087,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "5229:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1132,
												"src": "5222:12:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 1086,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1085,
														"name": "IERC20",
														"nameLocations": [
															"5222:6:8"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "5222:6:8"
													},
													"referencedDeclaration": 807,
													"src": "5222:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1089,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "5249:4:8",
												"nodeType": "VariableDeclaration",
												"scope": 1132,
												"src": "5236:17:8",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1088,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5236:5:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5221:33:8"
									},
									"returnParameters": {
										"id": 1093,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1092,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1132,
												"src": "5272:4:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1091,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "5272:4:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5271:6:8"
									},
									"scope": 1133,
									"src": "5189:578:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 1134,
							"src": "751:5018:8",
							"usedErrors": [
								860,
								869
							],
							"usedEvents": []
						}
					],
					"src": "115:5655:8"
				},
				"id": 8
			},
			"@openzeppelin/contracts/token/ERC721/ERC721.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
					"exportedSymbols": {
						"Context": [
							2881
						],
						"ERC165": [
							3160
						],
						"ERC721": [
							2142
						],
						"IERC165": [
							3172
						],
						"IERC721": [
							2259
						],
						"IERC721Errors": [
							682
						],
						"IERC721Metadata": [
							2305
						],
						"IERC721Receiver": [
							2277
						],
						"Strings": [
							3136
						]
					},
					"id": 2143,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1135,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "111:24:9"
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
							"file": "./IERC721.sol",
							"id": 1137,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 2260,
							"src": "137:38:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1136,
										"name": "IERC721",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2259,
										"src": "145:7:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
							"file": "./IERC721Receiver.sol",
							"id": 1139,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 2278,
							"src": "176:54:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1138,
										"name": "IERC721Receiver",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2277,
										"src": "184:15:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
							"file": "./extensions/IERC721Metadata.sol",
							"id": 1141,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 2306,
							"src": "231:65:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1140,
										"name": "IERC721Metadata",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2305,
										"src": "239:15:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Context.sol",
							"file": "../../utils/Context.sol",
							"id": 1143,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 2882,
							"src": "297:48:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1142,
										"name": "Context",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2881,
										"src": "305:7:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
							"file": "../../utils/Strings.sol",
							"id": 1145,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 3137,
							"src": "346:48:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1144,
										"name": "Strings",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3136,
										"src": "354:7:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
							"file": "../../utils/introspection/ERC165.sol",
							"id": 1148,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 3161,
							"src": "395:69:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1146,
										"name": "IERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3172,
										"src": "403:7:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 1147,
										"name": "ERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3160,
										"src": "412:6:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
							"file": "../../interfaces/draft-IERC6093.sol",
							"id": 1150,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2143,
							"sourceUnit": 730,
							"src": "465:66:9",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1149,
										"name": "IERC721Errors",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 682,
										"src": "473:13:9",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": true,
							"baseContracts": [
								{
									"baseName": {
										"id": 1152,
										"name": "Context",
										"nameLocations": [
											"808:7:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2881,
										"src": "808:7:9"
									},
									"id": 1153,
									"nodeType": "InheritanceSpecifier",
									"src": "808:7:9"
								},
								{
									"baseName": {
										"id": 1154,
										"name": "ERC165",
										"nameLocations": [
											"817:6:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3160,
										"src": "817:6:9"
									},
									"id": 1155,
									"nodeType": "InheritanceSpecifier",
									"src": "817:6:9"
								},
								{
									"baseName": {
										"id": 1156,
										"name": "IERC721",
										"nameLocations": [
											"825:7:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2259,
										"src": "825:7:9"
									},
									"id": 1157,
									"nodeType": "InheritanceSpecifier",
									"src": "825:7:9"
								},
								{
									"baseName": {
										"id": 1158,
										"name": "IERC721Metadata",
										"nameLocations": [
											"834:15:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2305,
										"src": "834:15:9"
									},
									"id": 1159,
									"nodeType": "InheritanceSpecifier",
									"src": "834:15:9"
								},
								{
									"baseName": {
										"id": 1160,
										"name": "IERC721Errors",
										"nameLocations": [
											"851:13:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 682,
										"src": "851:13:9"
									},
									"id": 1161,
									"nodeType": "InheritanceSpecifier",
									"src": "851:13:9"
								}
							],
							"canonicalName": "ERC721",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 1151,
								"nodeType": "StructuredDocumentation",
								"src": "533:246:9",
								"text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."
							},
							"fullyImplemented": true,
							"id": 2142,
							"linearizedBaseContracts": [
								2142,
								682,
								2305,
								2259,
								3160,
								3172,
								2881
							],
							"name": "ERC721",
							"nameLocation": "798:6:9",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"global": false,
									"id": 1164,
									"libraryName": {
										"id": 1162,
										"name": "Strings",
										"nameLocations": [
											"877:7:9"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3136,
										"src": "877:7:9"
									},
									"nodeType": "UsingForDirective",
									"src": "871:26:9",
									"typeName": {
										"id": 1163,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "889:7:9",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									}
								},
								{
									"constant": false,
									"id": 1166,
									"mutability": "mutable",
									"name": "_name",
									"nameLocation": "936:5:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "921:20:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_string_storage",
										"typeString": "string"
									},
									"typeName": {
										"id": 1165,
										"name": "string",
										"nodeType": "ElementaryTypeName",
										"src": "921:6:9",
										"typeDescriptions": {
											"typeIdentifier": "t_string_storage_ptr",
											"typeString": "string"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 1168,
									"mutability": "mutable",
									"name": "_symbol",
									"nameLocation": "983:7:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "968:22:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_string_storage",
										"typeString": "string"
									},
									"typeName": {
										"id": 1167,
										"name": "string",
										"nodeType": "ElementaryTypeName",
										"src": "968:6:9",
										"typeDescriptions": {
											"typeIdentifier": "t_string_storage_ptr",
											"typeString": "string"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 1172,
									"mutability": "mutable",
									"name": "_owners",
									"nameLocation": "1041:7:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "997:51:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
										"typeString": "mapping(uint256 => address)"
									},
									"typeName": {
										"id": 1171,
										"keyName": "tokenId",
										"keyNameLocation": "1013:7:9",
										"keyType": {
											"id": 1169,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "1005:7:9",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "997:35:9",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
											"typeString": "mapping(uint256 => address)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 1170,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "1024:7:9",
											"stateMutability": "nonpayable",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 1176,
									"mutability": "mutable",
									"name": "_balances",
									"nameLocation": "1097:9:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "1055:51:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
										"typeString": "mapping(address => uint256)"
									},
									"typeName": {
										"id": 1175,
										"keyName": "owner",
										"keyNameLocation": "1071:5:9",
										"keyType": {
											"id": 1173,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "1063:7:9",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "1055:33:9",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
											"typeString": "mapping(address => uint256)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 1174,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "1080:7:9",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 1180,
									"mutability": "mutable",
									"name": "_tokenApprovals",
									"nameLocation": "1157:15:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "1113:59:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
										"typeString": "mapping(uint256 => address)"
									},
									"typeName": {
										"id": 1179,
										"keyName": "tokenId",
										"keyNameLocation": "1129:7:9",
										"keyType": {
											"id": 1177,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "1121:7:9",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "1113:35:9",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
											"typeString": "mapping(uint256 => address)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 1178,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "1140:7:9",
											"stateMutability": "nonpayable",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 1186,
									"mutability": "mutable",
									"name": "_operatorApprovals",
									"nameLocation": "1247:18:9",
									"nodeType": "VariableDeclaration",
									"scope": 2142,
									"src": "1179:86:9",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
										"typeString": "mapping(address => mapping(address => bool))"
									},
									"typeName": {
										"id": 1185,
										"keyName": "owner",
										"keyNameLocation": "1195:5:9",
										"keyType": {
											"id": 1181,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "1187:7:9",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "1179:59:9",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
											"typeString": "mapping(address => mapping(address => bool))"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 1184,
											"keyName": "operator",
											"keyNameLocation": "1220:8:9",
											"keyType": {
												"id": 1182,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "1212:7:9",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"nodeType": "Mapping",
											"src": "1204:33:9",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
												"typeString": "mapping(address => bool)"
											},
											"valueName": "",
											"valueNameLocation": "-1:-1:-1",
											"valueType": {
												"id": 1183,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1232:4:9",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											}
										}
									},
									"visibility": "private"
								},
								{
									"body": {
										"id": 1202,
										"nodeType": "Block",
										"src": "1441:57:9",
										"statements": [
											{
												"expression": {
													"id": 1196,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 1194,
														"name": "_name",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1166,
														"src": "1451:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_string_storage",
															"typeString": "string storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1195,
														"name": "name_",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1189,
														"src": "1459:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string memory"
														}
													},
													"src": "1451:13:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage",
														"typeString": "string storage ref"
													}
												},
												"id": 1197,
												"nodeType": "ExpressionStatement",
												"src": "1451:13:9"
											},
											{
												"expression": {
													"id": 1200,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 1198,
														"name": "_symbol",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1168,
														"src": "1474:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_string_storage",
															"typeString": "string storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1199,
														"name": "symbol_",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1191,
														"src": "1484:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string memory"
														}
													},
													"src": "1474:17:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage",
														"typeString": "string storage ref"
													}
												},
												"id": 1201,
												"nodeType": "ExpressionStatement",
												"src": "1474:17:9"
											}
										]
									},
									"documentation": {
										"id": 1187,
										"nodeType": "StructuredDocumentation",
										"src": "1272:108:9",
										"text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."
									},
									"id": 1203,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1192,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1189,
												"mutability": "mutable",
												"name": "name_",
												"nameLocation": "1411:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1203,
												"src": "1397:19:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1188,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "1397:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1191,
												"mutability": "mutable",
												"name": "symbol_",
												"nameLocation": "1432:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1203,
												"src": "1418:21:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1190,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "1418:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1396:44:9"
									},
									"returnParameters": {
										"id": 1193,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1441:0:9"
									},
									"scope": 2142,
									"src": "1385:113:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"baseFunctions": [
										3159,
										3171
									],
									"body": {
										"id": 1233,
										"nodeType": "Block",
										"src": "1673:192:9",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1231,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"id": 1226,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"commonType": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															},
															"id": 1219,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 1214,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1206,
																"src": "1702:11:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"expression": {
																	"arguments": [
																		{
																			"id": 1216,
																			"name": "IERC721",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2259,
																			"src": "1722:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_IERC721_$2259_$",
																				"typeString": "type(contract IERC721)"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_type$_t_contract$_IERC721_$2259_$",
																				"typeString": "type(contract IERC721)"
																			}
																		],
																		"id": 1215,
																		"name": "type",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967269,
																		"src": "1717:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
																			"typeString": "function () pure"
																		}
																	},
																	"id": 1217,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "1717:13:9",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$2259",
																		"typeString": "type(contract IERC721)"
																	}
																},
																"id": 1218,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "1731:11:9",
																"memberName": "interfaceId",
																"nodeType": "MemberAccess",
																"src": "1717:25:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"src": "1702:40:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "||",
														"rightExpression": {
															"commonType": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															},
															"id": 1225,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 1220,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1206,
																"src": "1758:11:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"expression": {
																	"arguments": [
																		{
																			"id": 1222,
																			"name": "IERC721Metadata",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2305,
																			"src": "1778:15:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2305_$",
																				"typeString": "type(contract IERC721Metadata)"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2305_$",
																				"typeString": "type(contract IERC721Metadata)"
																			}
																		],
																		"id": 1221,
																		"name": "type",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967269,
																		"src": "1773:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
																			"typeString": "function () pure"
																		}
																	},
																	"id": 1223,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "1773:21:9",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$2305",
																		"typeString": "type(contract IERC721Metadata)"
																	}
																},
																"id": 1224,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "1795:11:9",
																"memberName": "interfaceId",
																"nodeType": "MemberAccess",
																"src": "1773:33:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"src": "1758:48:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"src": "1702:104:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"arguments": [
															{
																"id": 1229,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1206,
																"src": "1846:11:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															],
															"expression": {
																"id": 1227,
																"name": "super",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967271,
																"src": "1822:5:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_super$_ERC721_$2142_$",
																	"typeString": "type(contract super ERC721)"
																}
															},
															"id": 1228,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "1828:17:9",
															"memberName": "supportsInterface",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 3159,
															"src": "1822:23:9",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
																"typeString": "function (bytes4) view returns (bool)"
															}
														},
														"id": 1230,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "1822:36:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "1702:156:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 1213,
												"id": 1232,
												"nodeType": "Return",
												"src": "1683:175:9"
											}
										]
									},
									"documentation": {
										"id": 1204,
										"nodeType": "StructuredDocumentation",
										"src": "1504:56:9",
										"text": " @dev See {IERC165-supportsInterface}."
									},
									"functionSelector": "01ffc9a7",
									"id": 1234,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "1574:17:9",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 1210,
										"nodeType": "OverrideSpecifier",
										"overrides": [
											{
												"id": 1208,
												"name": "ERC165",
												"nameLocations": [
													"1641:6:9"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 3160,
												"src": "1641:6:9"
											},
											{
												"id": 1209,
												"name": "IERC165",
												"nameLocations": [
													"1649:7:9"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 3172,
												"src": "1649:7:9"
											}
										],
										"src": "1632:25:9"
									},
									"parameters": {
										"id": 1207,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1206,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "1599:11:9",
												"nodeType": "VariableDeclaration",
												"scope": 1234,
												"src": "1592:18:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 1205,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "1592:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1591:20:9"
									},
									"returnParameters": {
										"id": 1213,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1212,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1234,
												"src": "1667:4:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1211,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1667:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1666:6:9"
									},
									"scope": 2142,
									"src": "1565:300:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2184
									],
									"body": {
										"id": 1261,
										"nodeType": "Block",
										"src": "1996:136:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1247,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1242,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1237,
														"src": "2010:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1245,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2027:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1244,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "2019:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1243,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "2019:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1246,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2019:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "2010:19:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1256,
												"nodeType": "IfStatement",
												"src": "2006:87:9",
												"trueBody": {
													"id": 1255,
													"nodeType": "Block",
													"src": "2031:62:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1251,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "2079:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1250,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "2071:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1249,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "2071:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1252,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2071:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1248,
																	"name": "ERC721InvalidOwner",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 640,
																	"src": "2052:18:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1253,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2052:30:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1254,
															"nodeType": "RevertStatement",
															"src": "2045:37:9"
														}
													]
												}
											},
											{
												"expression": {
													"baseExpression": {
														"id": 1257,
														"name": "_balances",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1176,
														"src": "2109:9:9",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
															"typeString": "mapping(address => uint256)"
														}
													},
													"id": 1259,
													"indexExpression": {
														"id": 1258,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1237,
														"src": "2119:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "2109:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 1241,
												"id": 1260,
												"nodeType": "Return",
												"src": "2102:23:9"
											}
										]
									},
									"documentation": {
										"id": 1235,
										"nodeType": "StructuredDocumentation",
										"src": "1871:48:9",
										"text": " @dev See {IERC721-balanceOf}."
									},
									"functionSelector": "70a08231",
									"id": 1262,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "balanceOf",
									"nameLocation": "1933:9:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1238,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1237,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1951:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1262,
												"src": "1943:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1236,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1943:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1942:15:9"
									},
									"returnParameters": {
										"id": 1241,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1240,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1262,
												"src": "1987:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1239,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1987:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1986:9:9"
									},
									"scope": 2142,
									"src": "1924:208:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2192
									],
									"body": {
										"id": 1274,
										"nodeType": "Block",
										"src": "2261:46:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1271,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1265,
															"src": "2292:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1270,
														"name": "_requireOwned",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2077,
														"src": "2278:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 1272,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2278:22:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 1269,
												"id": 1273,
												"nodeType": "Return",
												"src": "2271:29:9"
											}
										]
									},
									"documentation": {
										"id": 1263,
										"nodeType": "StructuredDocumentation",
										"src": "2138:46:9",
										"text": " @dev See {IERC721-ownerOf}."
									},
									"functionSelector": "6352211e",
									"id": 1275,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "ownerOf",
									"nameLocation": "2198:7:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1266,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1265,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2214:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1275,
												"src": "2206:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1264,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2206:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2205:17:9"
									},
									"returnParameters": {
										"id": 1269,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1268,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1275,
												"src": "2252:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1267,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2252:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2251:9:9"
									},
									"scope": 2142,
									"src": "2189:118:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2290
									],
									"body": {
										"id": 1283,
										"nodeType": "Block",
										"src": "2429:29:9",
										"statements": [
											{
												"expression": {
													"id": 1281,
													"name": "_name",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1166,
													"src": "2446:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage",
														"typeString": "string storage ref"
													}
												},
												"functionReturnParameters": 1280,
												"id": 1282,
												"nodeType": "Return",
												"src": "2439:12:9"
											}
										]
									},
									"documentation": {
										"id": 1276,
										"nodeType": "StructuredDocumentation",
										"src": "2313:51:9",
										"text": " @dev See {IERC721Metadata-name}."
									},
									"functionSelector": "06fdde03",
									"id": 1284,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "name",
									"nameLocation": "2378:4:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1277,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2382:2:9"
									},
									"returnParameters": {
										"id": 1280,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1279,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1284,
												"src": "2414:13:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1278,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2414:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2413:15:9"
									},
									"scope": 2142,
									"src": "2369:89:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2296
									],
									"body": {
										"id": 1292,
										"nodeType": "Block",
										"src": "2584:31:9",
										"statements": [
											{
												"expression": {
													"id": 1290,
													"name": "_symbol",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1168,
													"src": "2601:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage",
														"typeString": "string storage ref"
													}
												},
												"functionReturnParameters": 1289,
												"id": 1291,
												"nodeType": "Return",
												"src": "2594:14:9"
											}
										]
									},
									"documentation": {
										"id": 1285,
										"nodeType": "StructuredDocumentation",
										"src": "2464:53:9",
										"text": " @dev See {IERC721Metadata-symbol}."
									},
									"functionSelector": "95d89b41",
									"id": 1293,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "symbol",
									"nameLocation": "2531:6:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1286,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2537:2:9"
									},
									"returnParameters": {
										"id": 1289,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1288,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1293,
												"src": "2569:13:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1287,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2569:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2568:15:9"
									},
									"scope": 2142,
									"src": "2522:93:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2304
									],
									"body": {
										"id": 1328,
										"nodeType": "Block",
										"src": "2760:176:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1302,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1296,
															"src": "2784:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1301,
														"name": "_requireOwned",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2077,
														"src": "2770:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 1303,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2770:22:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1304,
												"nodeType": "ExpressionStatement",
												"src": "2770:22:9"
											},
											{
												"assignments": [
													1306
												],
												"declarations": [
													{
														"constant": false,
														"id": 1306,
														"mutability": "mutable",
														"name": "baseURI",
														"nameLocation": "2817:7:9",
														"nodeType": "VariableDeclaration",
														"scope": 1328,
														"src": "2803:21:9",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string"
														},
														"typeName": {
															"id": 1305,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "2803:6:9",
															"typeDescriptions": {
																"typeIdentifier": "t_string_storage_ptr",
																"typeString": "string"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1309,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1307,
														"name": "_baseURI",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1338,
														"src": "2827:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
															"typeString": "function () view returns (string memory)"
														}
													},
													"id": 1308,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2827:10:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2803:34:9"
											},
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 1316,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"expression": {
																"arguments": [
																	{
																		"id": 1312,
																		"name": "baseURI",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1306,
																		"src": "2860:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	],
																	"id": 1311,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "2854:5:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																		"typeString": "type(bytes storage pointer)"
																	},
																	"typeName": {
																		"id": 1310,
																		"name": "bytes",
																		"nodeType": "ElementaryTypeName",
																		"src": "2854:5:9",
																		"typeDescriptions": {}
																	}
																},
																"id": 1313,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2854:14:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"id": 1314,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2869:6:9",
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "2854:21:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": ">",
														"rightExpression": {
															"hexValue": "30",
															"id": 1315,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2878:1:9",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"src": "2854:25:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"hexValue": "",
														"id": 1325,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "string",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "2927:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
															"typeString": "literal_string \"\""
														},
														"value": ""
													},
													"id": 1326,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "2854:75:9",
													"trueExpression": {
														"arguments": [
															{
																"id": 1320,
																"name": "baseURI",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1306,
																"src": "2896:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string memory"
																}
															},
															{
																"arguments": [],
																"expression": {
																	"argumentTypes": [],
																	"expression": {
																		"id": 1321,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1296,
																		"src": "2905:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 1322,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "2913:8:9",
																	"memberName": "toString",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 2949,
																	"src": "2905:16:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$",
																		"typeString": "function (uint256) pure returns (string memory)"
																	}
																},
																"id": 1323,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2905:18:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string memory"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string memory"
																},
																{
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string memory"
																}
															],
															"expression": {
																"id": 1318,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "2882:6:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_string_storage_ptr_$",
																	"typeString": "type(string storage pointer)"
																},
																"typeName": {
																	"id": 1317,
																	"name": "string",
																	"nodeType": "ElementaryTypeName",
																	"src": "2882:6:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1319,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2889:6:9",
															"memberName": "concat",
															"nodeType": "MemberAccess",
															"src": "2882:13:9",
															"typeDescriptions": {
																"typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$",
																"typeString": "function () pure returns (string memory)"
															}
														},
														"id": 1324,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2882:42:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string memory"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"functionReturnParameters": 1300,
												"id": 1327,
												"nodeType": "Return",
												"src": "2847:82:9"
											}
										]
									},
									"documentation": {
										"id": 1294,
										"nodeType": "StructuredDocumentation",
										"src": "2621:55:9",
										"text": " @dev See {IERC721Metadata-tokenURI}."
									},
									"functionSelector": "c87b56dd",
									"id": 1329,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tokenURI",
									"nameLocation": "2690:8:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1297,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1296,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2707:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1329,
												"src": "2699:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1295,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2699:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2698:17:9"
									},
									"returnParameters": {
										"id": 1300,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1299,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1329,
												"src": "2745:13:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1298,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2745:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2744:15:9"
									},
									"scope": 2142,
									"src": "2681:255:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1337,
										"nodeType": "Block",
										"src": "3244:26:9",
										"statements": [
											{
												"expression": {
													"hexValue": "",
													"id": 1335,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "string",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "3261:2:9",
													"typeDescriptions": {
														"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
														"typeString": "literal_string \"\""
													},
													"value": ""
												},
												"functionReturnParameters": 1334,
												"id": 1336,
												"nodeType": "Return",
												"src": "3254:9:9"
											}
										]
									},
									"documentation": {
										"id": 1330,
										"nodeType": "StructuredDocumentation",
										"src": "2942:231:9",
										"text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."
									},
									"id": 1338,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_baseURI",
									"nameLocation": "3187:8:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1331,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3195:2:9"
									},
									"returnParameters": {
										"id": 1334,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1333,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1338,
												"src": "3229:13:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 1332,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "3229:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3228:15:9"
									},
									"scope": 2142,
									"src": "3178:92:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"baseFunctions": [
										2232
									],
									"body": {
										"id": 1353,
										"nodeType": "Block",
										"src": "3388:52:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1347,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1341,
															"src": "3407:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1348,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1343,
															"src": "3411:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 1349,
																"name": "_msgSender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2871,
																"src": "3420:10:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																	"typeString": "function () view returns (address)"
																}
															},
															"id": 1350,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3420:12:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1346,
														"name": "_approve",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1945,
															2011
														],
														"referencedDeclaration": 1945,
														"src": "3398:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
															"typeString": "function (address,uint256,address)"
														}
													},
													"id": 1351,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3398:35:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1352,
												"nodeType": "ExpressionStatement",
												"src": "3398:35:9"
											}
										]
									},
									"documentation": {
										"id": 1339,
										"nodeType": "StructuredDocumentation",
										"src": "3276:46:9",
										"text": " @dev See {IERC721-approve}."
									},
									"functionSelector": "095ea7b3",
									"id": 1354,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "approve",
									"nameLocation": "3336:7:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1344,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1341,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "3352:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1354,
												"src": "3344:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1340,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3344:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1343,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "3364:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1354,
												"src": "3356:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1342,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3356:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3343:29:9"
									},
									"returnParameters": {
										"id": 1345,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3388:0:9"
									},
									"scope": 2142,
									"src": "3327:113:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2248
									],
									"body": {
										"id": 1370,
										"nodeType": "Block",
										"src": "3577:78:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1363,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1357,
															"src": "3601:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1362,
														"name": "_requireOwned",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2077,
														"src": "3587:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 1364,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3587:22:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1365,
												"nodeType": "ExpressionStatement",
												"src": "3587:22:9"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 1367,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1357,
															"src": "3640:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1366,
														"name": "_getApproved",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1520,
														"src": "3627:12:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 1368,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3627:21:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 1361,
												"id": 1369,
												"nodeType": "Return",
												"src": "3620:28:9"
											}
										]
									},
									"documentation": {
										"id": 1355,
										"nodeType": "StructuredDocumentation",
										"src": "3446:50:9",
										"text": " @dev See {IERC721-getApproved}."
									},
									"functionSelector": "081812fc",
									"id": 1371,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getApproved",
									"nameLocation": "3510:11:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1358,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1357,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "3530:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1371,
												"src": "3522:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1356,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3522:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3521:17:9"
									},
									"returnParameters": {
										"id": 1361,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1360,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1371,
												"src": "3568:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1359,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3568:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3567:9:9"
									},
									"scope": 2142,
									"src": "3501:154:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2240
									],
									"body": {
										"id": 1386,
										"nodeType": "Block",
										"src": "3797:69:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 1380,
																"name": "_msgSender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2871,
																"src": "3826:10:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																	"typeString": "function () view returns (address)"
																}
															},
															"id": 1381,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3826:12:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1382,
															"name": "operator",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1374,
															"src": "3840:8:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1383,
															"name": "approved",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1376,
															"src": "3850:8:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														],
														"id": 1379,
														"name": "_setApprovalForAll",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2048,
														"src": "3807:18:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",
															"typeString": "function (address,address,bool)"
														}
													},
													"id": 1384,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3807:52:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1385,
												"nodeType": "ExpressionStatement",
												"src": "3807:52:9"
											}
										]
									},
									"documentation": {
										"id": 1372,
										"nodeType": "StructuredDocumentation",
										"src": "3661:56:9",
										"text": " @dev See {IERC721-setApprovalForAll}."
									},
									"functionSelector": "a22cb465",
									"id": 1387,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "setApprovalForAll",
									"nameLocation": "3731:17:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1377,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1374,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "3757:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 1387,
												"src": "3749:16:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1373,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3749:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1376,
												"mutability": "mutable",
												"name": "approved",
												"nameLocation": "3772:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 1387,
												"src": "3767:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1375,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "3767:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3748:33:9"
									},
									"returnParameters": {
										"id": 1378,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3797:0:9"
									},
									"scope": 2142,
									"src": "3722:144:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2258
									],
									"body": {
										"id": 1403,
										"nodeType": "Block",
										"src": "4026:59:9",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"baseExpression": {
															"id": 1397,
															"name": "_operatorApprovals",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1186,
															"src": "4043:18:9",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
																"typeString": "mapping(address => mapping(address => bool))"
															}
														},
														"id": 1399,
														"indexExpression": {
															"id": 1398,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1390,
															"src": "4062:5:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "IndexAccess",
														"src": "4043:25:9",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
															"typeString": "mapping(address => bool)"
														}
													},
													"id": 1401,
													"indexExpression": {
														"id": 1400,
														"name": "operator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1392,
														"src": "4069:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "4043:35:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 1396,
												"id": 1402,
												"nodeType": "Return",
												"src": "4036:42:9"
											}
										]
									},
									"documentation": {
										"id": 1388,
										"nodeType": "StructuredDocumentation",
										"src": "3872:55:9",
										"text": " @dev See {IERC721-isApprovedForAll}."
									},
									"functionSelector": "e985e9c5",
									"id": 1404,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "isApprovedForAll",
									"nameLocation": "3941:16:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1393,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1390,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "3966:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1404,
												"src": "3958:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1389,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3958:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1392,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "3981:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 1404,
												"src": "3973:16:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1391,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3973:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3957:33:9"
									},
									"returnParameters": {
										"id": 1396,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1395,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1404,
												"src": "4020:4:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1394,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "4020:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4019:6:9"
									},
									"scope": 2142,
									"src": "3932:153:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2224
									],
									"body": {
										"id": 1449,
										"nodeType": "Block",
										"src": "4227:498:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1419,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1414,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1409,
														"src": "4241:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1417,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4255:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1416,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "4247:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1415,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "4247:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1418,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4247:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "4241:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1428,
												"nodeType": "IfStatement",
												"src": "4237:87:9",
												"trueBody": {
													"id": 1427,
													"nodeType": "Block",
													"src": "4259:65:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1423,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "4310:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1422,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4302:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1421,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "4302:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1424,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4302:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1420,
																	"name": "ERC721InvalidReceiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 664,
																	"src": "4280:21:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1425,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4280:33:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1426,
															"nodeType": "RevertStatement",
															"src": "4273:40:9"
														}
													]
												}
											},
											{
												"assignments": [
													1430
												],
												"declarations": [
													{
														"constant": false,
														"id": 1430,
														"mutability": "mutable",
														"name": "previousOwner",
														"nameLocation": "4550:13:9",
														"nodeType": "VariableDeclaration",
														"scope": 1449,
														"src": "4542:21:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1429,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "4542:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1437,
												"initialValue": {
													"arguments": [
														{
															"id": 1432,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1409,
															"src": "4574:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1433,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1411,
															"src": "4578:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 1434,
																"name": "_msgSender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2871,
																"src": "4587:10:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																	"typeString": "function () view returns (address)"
																}
															},
															"id": 1435,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4587:12:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1431,
														"name": "_update",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1699,
														"src": "4566:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$",
															"typeString": "function (address,uint256,address) returns (address)"
														}
													},
													"id": 1436,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4566:34:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4542:58:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1440,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1438,
														"name": "previousOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1430,
														"src": "4614:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"id": 1439,
														"name": "from",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1407,
														"src": "4631:4:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "4614:21:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1448,
												"nodeType": "IfStatement",
												"src": "4610:109:9",
												"trueBody": {
													"id": 1447,
													"nodeType": "Block",
													"src": "4637:82:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 1442,
																		"name": "from",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1407,
																		"src": "4679:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 1443,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1411,
																		"src": "4685:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 1444,
																		"name": "previousOwner",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1430,
																		"src": "4694:13:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1441,
																	"name": "ERC721IncorrectOwner",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 654,
																	"src": "4658:20:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$",
																		"typeString": "function (address,uint256,address) pure"
																	}
																},
																"id": 1445,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4658:50:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1446,
															"nodeType": "RevertStatement",
															"src": "4651:57:9"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1405,
										"nodeType": "StructuredDocumentation",
										"src": "4091:51:9",
										"text": " @dev See {IERC721-transferFrom}."
									},
									"functionSelector": "23b872dd",
									"id": 1450,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "transferFrom",
									"nameLocation": "4156:12:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1412,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1407,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "4177:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1450,
												"src": "4169:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1406,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4169:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1409,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "4191:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1450,
												"src": "4183:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1408,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4183:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1411,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4203:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1450,
												"src": "4195:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1410,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4195:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4168:43:9"
									},
									"returnParameters": {
										"id": 1413,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4227:0:9"
									},
									"scope": 2142,
									"src": "4147:578:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2214
									],
									"body": {
										"id": 1467,
										"nodeType": "Block",
										"src": "4867:56:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1461,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1453,
															"src": "4894:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1462,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1455,
															"src": "4900:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1463,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1457,
															"src": "4904:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"hexValue": "",
															"id": 1464,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4913:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															},
															"value": ""
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															}
														],
														"id": 1460,
														"name": "safeTransferFrom",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1468,
															1494
														],
														"referencedDeclaration": 1494,
														"src": "4877:16:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,address,uint256,bytes memory)"
														}
													},
													"id": 1465,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4877:39:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1466,
												"nodeType": "ExpressionStatement",
												"src": "4877:39:9"
											}
										]
									},
									"documentation": {
										"id": 1451,
										"nodeType": "StructuredDocumentation",
										"src": "4731:55:9",
										"text": " @dev See {IERC721-safeTransferFrom}."
									},
									"functionSelector": "42842e0e",
									"id": 1468,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "4800:16:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1458,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1453,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "4825:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1468,
												"src": "4817:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1452,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4817:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1455,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "4839:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1468,
												"src": "4831:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1454,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4831:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1457,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4851:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1468,
												"src": "4843:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1456,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4843:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4816:43:9"
									},
									"returnParameters": {
										"id": 1459,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4867:0:9"
									},
									"scope": 2142,
									"src": "4791:132:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										2204
									],
									"body": {
										"id": 1493,
										"nodeType": "Block",
										"src": "5092:105:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1481,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1471,
															"src": "5115:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1482,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1473,
															"src": "5121:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1483,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1475,
															"src": "5125:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1480,
														"name": "transferFrom",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1450,
														"src": "5102:12:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,address,uint256)"
														}
													},
													"id": 1484,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5102:31:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1485,
												"nodeType": "ExpressionStatement",
												"src": "5102:31:9"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 1487,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1471,
															"src": "5166:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1488,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1473,
															"src": "5172:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1489,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1475,
															"src": "5176:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 1490,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1477,
															"src": "5185:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 1486,
														"name": "_checkOnERC721Received",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2141,
														"src": "5143:22:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,address,uint256,bytes memory)"
														}
													},
													"id": 1491,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5143:47:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1492,
												"nodeType": "ExpressionStatement",
												"src": "5143:47:9"
											}
										]
									},
									"documentation": {
										"id": 1469,
										"nodeType": "StructuredDocumentation",
										"src": "4929:55:9",
										"text": " @dev See {IERC721-safeTransferFrom}."
									},
									"functionSelector": "b88d4fde",
									"id": 1494,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "4998:16:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1478,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1471,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "5023:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1494,
												"src": "5015:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1470,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5015:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1473,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "5037:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1494,
												"src": "5029:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1472,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5029:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1475,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "5049:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1494,
												"src": "5041:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1474,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "5041:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1477,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "5071:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1494,
												"src": "5058:17:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1476,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5058:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5014:62:9"
									},
									"returnParameters": {
										"id": 1479,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5092:0:9"
									},
									"scope": 2142,
									"src": "4989:208:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1506,
										"nodeType": "Block",
										"src": "5786:40:9",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 1502,
														"name": "_owners",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1172,
														"src": "5803:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
															"typeString": "mapping(uint256 => address)"
														}
													},
													"id": 1504,
													"indexExpression": {
														"id": 1503,
														"name": "tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1497,
														"src": "5811:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "5803:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 1501,
												"id": 1505,
												"nodeType": "Return",
												"src": "5796:23:9"
											}
										]
									},
									"documentation": {
										"id": 1495,
										"nodeType": "StructuredDocumentation",
										"src": "5203:503:9",
										"text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."
									},
									"id": 1507,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_ownerOf",
									"nameLocation": "5720:8:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1498,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1497,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "5737:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1507,
												"src": "5729:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1496,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "5729:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5728:17:9"
									},
									"returnParameters": {
										"id": 1501,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1500,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1507,
												"src": "5777:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1499,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5777:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5776:9:9"
									},
									"scope": 2142,
									"src": "5711:115:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1519,
										"nodeType": "Block",
										"src": "6021:48:9",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 1515,
														"name": "_tokenApprovals",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1180,
														"src": "6038:15:9",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
															"typeString": "mapping(uint256 => address)"
														}
													},
													"id": 1517,
													"indexExpression": {
														"id": 1516,
														"name": "tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1510,
														"src": "6054:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "6038:24:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 1514,
												"id": 1518,
												"nodeType": "Return",
												"src": "6031:31:9"
											}
										]
									},
									"documentation": {
										"id": 1508,
										"nodeType": "StructuredDocumentation",
										"src": "5832:105:9",
										"text": " @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."
									},
									"id": 1520,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_getApproved",
									"nameLocation": "5951:12:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1511,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1510,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "5972:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1520,
												"src": "5964:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1509,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "5964:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5963:17:9"
									},
									"returnParameters": {
										"id": 1514,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1513,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1520,
												"src": "6012:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1512,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6012:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6011:9:9"
									},
									"scope": 2142,
									"src": "5942:127:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1555,
										"nodeType": "Block",
										"src": "6489:163:9",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1553,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"id": 1537,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 1532,
															"name": "spender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1525,
															"src": "6518:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "!=",
														"rightExpression": {
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1535,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6537:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1534,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "6529:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1533,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "6529:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1536,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6529:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"src": "6518:21:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "&&",
													"rightExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"id": 1551,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"commonType": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"id": 1545,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"commonType": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		"id": 1540,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 1538,
																			"name": "owner",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1523,
																			"src": "6556:5:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"id": 1539,
																			"name": "spender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1525,
																			"src": "6565:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"src": "6556:16:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "||",
																	"rightExpression": {
																		"arguments": [
																			{
																				"id": 1542,
																				"name": "owner",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1523,
																				"src": "6593:5:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			{
																				"id": 1543,
																				"name": "spender",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1525,
																				"src": "6600:7:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				},
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			],
																			"id": 1541,
																			"name": "isApprovedForAll",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1404,
																			"src": "6576:16:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
																				"typeString": "function (address,address) view returns (bool)"
																			}
																		},
																		"id": 1544,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6576:32:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"src": "6556:52:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "||",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"id": 1550,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"arguments": [
																			{
																				"id": 1547,
																				"name": "tokenId",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1527,
																				"src": "6625:7:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 1546,
																			"name": "_getApproved",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1520,
																			"src": "6612:12:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
																				"typeString": "function (uint256) view returns (address)"
																			}
																		},
																		"id": 1548,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6612:21:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "==",
																	"rightExpression": {
																		"id": 1549,
																		"name": "spender",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1525,
																		"src": "6637:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"src": "6612:32:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"src": "6556:88:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															}
														],
														"id": 1552,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "6555:90:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "6518:127:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 1531,
												"id": 1554,
												"nodeType": "Return",
												"src": "6499:146:9"
											}
										]
									},
									"documentation": {
										"id": 1521,
										"nodeType": "StructuredDocumentation",
										"src": "6075:300:9",
										"text": " @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."
									},
									"id": 1556,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_isAuthorized",
									"nameLocation": "6389:13:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1528,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1523,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "6411:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1556,
												"src": "6403:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1522,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6403:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1525,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "6426:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1556,
												"src": "6418:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1524,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6418:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1527,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "6443:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1556,
												"src": "6435:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1526,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6435:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6402:49:9"
									},
									"returnParameters": {
										"id": 1531,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1530,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1556,
												"src": "6483:4:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1529,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6483:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6482:6:9"
									},
									"scope": 2142,
									"src": "6380:272:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1592,
										"nodeType": "Block",
										"src": "7183:271:9",
										"statements": [
											{
												"condition": {
													"id": 1571,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "7197:39:9",
													"subExpression": {
														"arguments": [
															{
																"id": 1567,
																"name": "owner",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1559,
																"src": "7212:5:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 1568,
																"name": "spender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1561,
																"src": "7219:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 1569,
																"name": "tokenId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1563,
																"src": "7228:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															],
															"id": 1566,
															"name": "_isAuthorized",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1556,
															"src": "7198:13:9",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																"typeString": "function (address,address,uint256) view returns (bool)"
															}
														},
														"id": 1570,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "7198:38:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1591,
												"nodeType": "IfStatement",
												"src": "7193:255:9",
												"trueBody": {
													"id": 1590,
													"nodeType": "Block",
													"src": "7238:210:9",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 1577,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 1572,
																	"name": "owner",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1559,
																	"src": "7256:5:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"arguments": [
																		{
																			"hexValue": "30",
																			"id": 1575,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "7273:1:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			}
																		],
																		"id": 1574,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "7265:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 1573,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "7265:7:9",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 1576,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "7265:10:9",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "7256:19:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 1588,
																"nodeType": "Block",
																"src": "7354:84:9",
																"statements": [
																	{
																		"errorCall": {
																			"arguments": [
																				{
																					"id": 1584,
																					"name": "spender",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1561,
																					"src": "7406:7:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"id": 1585,
																					"name": "tokenId",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1563,
																					"src": "7415:7:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"id": 1583,
																				"name": "ERC721InsufficientApproval",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 671,
																				"src": "7379:26:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$",
																					"typeString": "function (address,uint256) pure"
																				}
																			},
																			"id": 1586,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "7379:44:9",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 1587,
																		"nodeType": "RevertStatement",
																		"src": "7372:51:9"
																	}
																]
															},
															"id": 1589,
															"nodeType": "IfStatement",
															"src": "7252:186:9",
															"trueBody": {
																"id": 1582,
																"nodeType": "Block",
																"src": "7277:71:9",
																"statements": [
																	{
																		"errorCall": {
																			"arguments": [
																				{
																					"id": 1579,
																					"name": "tokenId",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1563,
																					"src": "7325:7:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"id": 1578,
																				"name": "ERC721NonexistentToken",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 645,
																				"src": "7302:22:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
																					"typeString": "function (uint256) pure"
																				}
																			},
																			"id": 1580,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "7302:31:9",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 1581,
																		"nodeType": "RevertStatement",
																		"src": "7295:38:9"
																	}
																]
															}
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1557,
										"nodeType": "StructuredDocumentation",
										"src": "6658:423:9",
										"text": " @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."
									},
									"id": 1593,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_checkAuthorized",
									"nameLocation": "7095:16:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1564,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1559,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "7120:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1593,
												"src": "7112:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1558,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7112:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1561,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "7135:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1593,
												"src": "7127:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1560,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7127:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1563,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "7152:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1593,
												"src": "7144:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1562,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7144:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7111:49:9"
									},
									"returnParameters": {
										"id": 1565,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7183:0:9"
									},
									"scope": 2142,
									"src": "7086:368:9",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1608,
										"nodeType": "Block",
										"src": "8171:78:9",
										"statements": [
											{
												"id": 1607,
												"nodeType": "UncheckedBlock",
												"src": "8181:62:9",
												"statements": [
													{
														"expression": {
															"id": 1605,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"baseExpression": {
																	"id": 1601,
																	"name": "_balances",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1176,
																	"src": "8205:9:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 1603,
																"indexExpression": {
																	"id": 1602,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1596,
																	"src": "8215:7:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": true,
																"nodeType": "IndexAccess",
																"src": "8205:18:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "+=",
															"rightHandSide": {
																"id": 1604,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1598,
																"src": "8227:5:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"src": "8205:27:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 1606,
														"nodeType": "ExpressionStatement",
														"src": "8205:27:9"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 1594,
										"nodeType": "StructuredDocumentation",
										"src": "7460:631:9",
										"text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."
									},
									"id": 1609,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_increaseBalance",
									"nameLocation": "8105:16:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1599,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1596,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "8130:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1609,
												"src": "8122:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1595,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8122:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1598,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "8147:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 1609,
												"src": "8139:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint128",
													"typeString": "uint128"
												},
												"typeName": {
													"id": 1597,
													"name": "uint128",
													"nodeType": "ElementaryTypeName",
													"src": "8139:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint128",
														"typeString": "uint128"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8121:32:9"
									},
									"returnParameters": {
										"id": 1600,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8171:0:9"
									},
									"scope": 2142,
									"src": "8096:153:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1698,
										"nodeType": "Block",
										"src": "8937:700:9",
										"statements": [
											{
												"assignments": [
													1622
												],
												"declarations": [
													{
														"constant": false,
														"id": 1622,
														"mutability": "mutable",
														"name": "from",
														"nameLocation": "8955:4:9",
														"nodeType": "VariableDeclaration",
														"scope": 1698,
														"src": "8947:12:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1621,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "8947:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1626,
												"initialValue": {
													"arguments": [
														{
															"id": 1624,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1614,
															"src": "8971:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1623,
														"name": "_ownerOf",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1507,
														"src": "8962:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 1625,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8962:17:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8947:32:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1632,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1627,
														"name": "auth",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1616,
														"src": "9039:4:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1630,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9055:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1629,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "9047:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1628,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "9047:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1631,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "9047:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "9039:18:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1640,
												"nodeType": "IfStatement",
												"src": "9035:86:9",
												"trueBody": {
													"id": 1639,
													"nodeType": "Block",
													"src": "9059:62:9",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 1634,
																		"name": "from",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1622,
																		"src": "9090:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 1635,
																		"name": "auth",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1616,
																		"src": "9096:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 1636,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1614,
																		"src": "9102:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 1633,
																	"name": "_checkAuthorized",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1593,
																	"src": "9073:16:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$",
																		"typeString": "function (address,address,uint256) view"
																	}
																},
																"id": 1637,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "9073:37:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1638,
															"nodeType": "ExpressionStatement",
															"src": "9073:37:9"
														}
													]
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1646,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1641,
														"name": "from",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1622,
														"src": "9165:4:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1644,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9181:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1643,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "9173:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1642,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "9173:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1645,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "9173:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "9165:18:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1668,
												"nodeType": "IfStatement",
												"src": "9161:256:9",
												"trueBody": {
													"id": 1667,
													"nodeType": "Block",
													"src": "9185:232:9",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1650,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "9298:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1649,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "9290:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1648,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "9290:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1651,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "9290:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 1652,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1614,
																		"src": "9302:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1655,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "9319:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1654,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "9311:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1653,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "9311:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1656,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "9311:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"hexValue": "66616c7365",
																		"id": 1657,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "9323:5:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	],
																	"id": 1647,
																	"name": "_approve",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		1945,
																		2011
																	],
																	"referencedDeclaration": 2011,
																	"src": "9281:8:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$",
																		"typeString": "function (address,uint256,address,bool)"
																	}
																},
																"id": 1658,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "9281:48:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1659,
															"nodeType": "ExpressionStatement",
															"src": "9281:48:9"
														},
														{
															"id": 1666,
															"nodeType": "UncheckedBlock",
															"src": "9344:63:9",
															"statements": [
																{
																	"expression": {
																		"id": 1664,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"baseExpression": {
																				"id": 1660,
																				"name": "_balances",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1176,
																				"src": "9372:9:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																					"typeString": "mapping(address => uint256)"
																				}
																			},
																			"id": 1662,
																			"indexExpression": {
																				"id": 1661,
																				"name": "from",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1622,
																				"src": "9382:4:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": true,
																			"nodeType": "IndexAccess",
																			"src": "9372:15:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "-=",
																		"rightHandSide": {
																			"hexValue": "31",
																			"id": 1663,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "9391:1:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "9372:20:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 1665,
																	"nodeType": "ExpressionStatement",
																	"src": "9372:20:9"
																}
															]
														}
													]
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1674,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1669,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1612,
														"src": "9431:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1672,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9445:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1671,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "9437:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1670,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "9437:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1673,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "9437:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "9431:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1683,
												"nodeType": "IfStatement",
												"src": "9427:107:9",
												"trueBody": {
													"id": 1682,
													"nodeType": "Block",
													"src": "9449:85:9",
													"statements": [
														{
															"id": 1681,
															"nodeType": "UncheckedBlock",
															"src": "9463:61:9",
															"statements": [
																{
																	"expression": {
																		"id": 1679,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"baseExpression": {
																				"id": 1675,
																				"name": "_balances",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1176,
																				"src": "9491:9:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																					"typeString": "mapping(address => uint256)"
																				}
																			},
																			"id": 1677,
																			"indexExpression": {
																				"id": 1676,
																				"name": "to",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1612,
																				"src": "9501:2:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": true,
																			"nodeType": "IndexAccess",
																			"src": "9491:13:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "31",
																			"id": 1678,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "9508:1:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "9491:18:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 1680,
																	"nodeType": "ExpressionStatement",
																	"src": "9491:18:9"
																}
															]
														}
													]
												}
											},
											{
												"expression": {
													"id": 1688,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 1684,
															"name": "_owners",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1172,
															"src": "9544:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
																"typeString": "mapping(uint256 => address)"
															}
														},
														"id": 1686,
														"indexExpression": {
															"id": 1685,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1614,
															"src": "9552:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "9544:16:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1687,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1612,
														"src": "9563:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "9544:21:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1689,
												"nodeType": "ExpressionStatement",
												"src": "9544:21:9"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1691,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1622,
															"src": "9590:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1692,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1612,
															"src": "9596:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1693,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1614,
															"src": "9600:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1690,
														"name": "Transfer",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2158,
														"src": "9581:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,address,uint256)"
														}
													},
													"id": 1694,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9581:27:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1695,
												"nodeType": "EmitStatement",
												"src": "9576:32:9"
											},
											{
												"expression": {
													"id": 1696,
													"name": "from",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1622,
													"src": "9626:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 1620,
												"id": 1697,
												"nodeType": "Return",
												"src": "9619:11:9"
											}
										]
									},
									"documentation": {
										"id": 1610,
										"nodeType": "StructuredDocumentation",
										"src": "8255:582:9",
										"text": " @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."
									},
									"id": 1699,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_update",
									"nameLocation": "8851:7:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1617,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1612,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "8867:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1699,
												"src": "8859:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1611,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8859:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1614,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "8879:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1699,
												"src": "8871:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1613,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8871:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1616,
												"mutability": "mutable",
												"name": "auth",
												"nameLocation": "8896:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1699,
												"src": "8888:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1615,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8888:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8858:43:9"
									},
									"returnParameters": {
										"id": 1620,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1619,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1699,
												"src": "8928:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1618,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8928:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8927:9:9"
									},
									"scope": 2142,
									"src": "8842:795:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1748,
										"nodeType": "Block",
										"src": "10012:274:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1712,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1707,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1702,
														"src": "10026:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1710,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10040:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1709,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "10032:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1708,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "10032:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1711,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "10032:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "10026:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1721,
												"nodeType": "IfStatement",
												"src": "10022:87:9",
												"trueBody": {
													"id": 1720,
													"nodeType": "Block",
													"src": "10044:65:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1716,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10095:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1715,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "10087:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1714,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "10087:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1717,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "10087:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1713,
																	"name": "ERC721InvalidReceiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 664,
																	"src": "10065:21:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1718,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10065:33:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1719,
															"nodeType": "RevertStatement",
															"src": "10058:40:9"
														}
													]
												}
											},
											{
												"assignments": [
													1723
												],
												"declarations": [
													{
														"constant": false,
														"id": 1723,
														"mutability": "mutable",
														"name": "previousOwner",
														"nameLocation": "10126:13:9",
														"nodeType": "VariableDeclaration",
														"scope": 1748,
														"src": "10118:21:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1722,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "10118:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1732,
												"initialValue": {
													"arguments": [
														{
															"id": 1725,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1702,
															"src": "10150:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1726,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1704,
															"src": "10154:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1729,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10171:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1728,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "10163:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1727,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "10163:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1730,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10163:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1724,
														"name": "_update",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1699,
														"src": "10142:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$",
															"typeString": "function (address,uint256,address) returns (address)"
														}
													},
													"id": 1731,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10142:32:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "10118:56:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1738,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1733,
														"name": "previousOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1723,
														"src": "10188:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1736,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10213:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1735,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "10205:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1734,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "10205:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1737,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "10205:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "10188:27:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1747,
												"nodeType": "IfStatement",
												"src": "10184:96:9",
												"trueBody": {
													"id": 1746,
													"nodeType": "Block",
													"src": "10217:63:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1742,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10266:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1741,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "10258:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1740,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "10258:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1743,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "10258:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1739,
																	"name": "ERC721InvalidSender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 659,
																	"src": "10238:19:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1744,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10238:31:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1745,
															"nodeType": "RevertStatement",
															"src": "10231:38:9"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1700,
										"nodeType": "StructuredDocumentation",
										"src": "9643:311:9",
										"text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."
									},
									"id": 1749,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_mint",
									"nameLocation": "9968:5:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1705,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1702,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "9982:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1749,
												"src": "9974:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1701,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9974:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1704,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "9994:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1749,
												"src": "9986:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1703,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "9986:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9973:29:9"
									},
									"returnParameters": {
										"id": 1706,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10012:0:9"
									},
									"scope": 2142,
									"src": "9959:327:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1763,
										"nodeType": "Block",
										"src": "10694:43:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1758,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1752,
															"src": "10714:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1759,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1754,
															"src": "10718:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"hexValue": "",
															"id": 1760,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "10727:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															},
															"value": ""
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															}
														],
														"id": 1757,
														"name": "_safeMint",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1764,
															1790
														],
														"referencedDeclaration": 1790,
														"src": "10704:9:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,uint256,bytes memory)"
														}
													},
													"id": 1761,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10704:26:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1762,
												"nodeType": "ExpressionStatement",
												"src": "10704:26:9"
											}
										]
									},
									"documentation": {
										"id": 1750,
										"nodeType": "StructuredDocumentation",
										"src": "10292:340:9",
										"text": " @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."
									},
									"id": 1764,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_safeMint",
									"nameLocation": "10646:9:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1755,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1752,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "10664:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1764,
												"src": "10656:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1751,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "10656:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1754,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "10676:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1764,
												"src": "10668:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1753,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10668:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10655:29:9"
									},
									"returnParameters": {
										"id": 1756,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10694:0:9"
									},
									"scope": 2142,
									"src": "10637:100:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1789,
										"nodeType": "Block",
										"src": "11042:98:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1775,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1767,
															"src": "11058:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1776,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1769,
															"src": "11062:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1774,
														"name": "_mint",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1749,
														"src": "11052:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 1777,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11052:18:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1778,
												"nodeType": "ExpressionStatement",
												"src": "11052:18:9"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1782,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11111:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1781,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "11103:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1780,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "11103:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1783,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11103:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1784,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1767,
															"src": "11115:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1785,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1769,
															"src": "11119:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 1786,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1771,
															"src": "11128:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 1779,
														"name": "_checkOnERC721Received",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2141,
														"src": "11080:22:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,address,uint256,bytes memory)"
														}
													},
													"id": 1787,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11080:53:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1788,
												"nodeType": "ExpressionStatement",
												"src": "11080:53:9"
											}
										]
									},
									"documentation": {
										"id": 1765,
										"nodeType": "StructuredDocumentation",
										"src": "10743:210:9",
										"text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."
									},
									"id": 1790,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_safeMint",
									"nameLocation": "10967:9:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1772,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1767,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "10985:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1790,
												"src": "10977:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1766,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "10977:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1769,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "10997:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1790,
												"src": "10989:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1768,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10989:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1771,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "11019:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1790,
												"src": "11006:17:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1770,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "11006:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10976:48:9"
									},
									"returnParameters": {
										"id": 1773,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11042:0:9"
									},
									"scope": 2142,
									"src": "10958:182:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1822,
										"nodeType": "Block",
										"src": "11507:186:9",
										"statements": [
											{
												"assignments": [
													1797
												],
												"declarations": [
													{
														"constant": false,
														"id": 1797,
														"mutability": "mutable",
														"name": "previousOwner",
														"nameLocation": "11525:13:9",
														"nodeType": "VariableDeclaration",
														"scope": 1822,
														"src": "11517:21:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1796,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "11517:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1809,
												"initialValue": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1801,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11557:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1800,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "11549:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1799,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "11549:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1802,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11549:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1803,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1793,
															"src": "11561:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1806,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11578:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1805,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "11570:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1804,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "11570:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1807,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11570:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1798,
														"name": "_update",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1699,
														"src": "11541:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$",
															"typeString": "function (address,uint256,address) returns (address)"
														}
													},
													"id": 1808,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11541:40:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "11517:64:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1815,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1810,
														"name": "previousOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1797,
														"src": "11595:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1813,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11620:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1812,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "11612:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1811,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "11612:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1814,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "11612:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "11595:27:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1821,
												"nodeType": "IfStatement",
												"src": "11591:96:9",
												"trueBody": {
													"id": 1820,
													"nodeType": "Block",
													"src": "11624:63:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 1817,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1793,
																		"src": "11668:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 1816,
																	"name": "ERC721NonexistentToken",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 645,
																	"src": "11645:22:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
																		"typeString": "function (uint256) pure"
																	}
																},
																"id": 1818,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "11645:31:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1819,
															"nodeType": "RevertStatement",
															"src": "11638:38:9"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1791,
										"nodeType": "StructuredDocumentation",
										"src": "11146:315:9",
										"text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."
									},
									"id": 1823,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_burn",
									"nameLocation": "11475:5:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1794,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1793,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "11489:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1823,
												"src": "11481:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1792,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "11481:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11480:17:9"
									},
									"returnParameters": {
										"id": 1795,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11507:0:9"
									},
									"scope": 2142,
									"src": "11466:227:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1882,
										"nodeType": "Block",
										"src": "12088:389:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1838,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1833,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1828,
														"src": "12102:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1836,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "12116:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1835,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "12108:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1834,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "12108:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1837,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "12108:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "12102:16:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1847,
												"nodeType": "IfStatement",
												"src": "12098:87:9",
												"trueBody": {
													"id": 1846,
													"nodeType": "Block",
													"src": "12120:65:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 1842,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12171:1:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 1841,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "12163:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 1840,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "12163:7:9",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 1843,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "12163:10:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1839,
																	"name": "ERC721InvalidReceiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 664,
																	"src": "12141:21:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 1844,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "12141:33:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1845,
															"nodeType": "RevertStatement",
															"src": "12134:40:9"
														}
													]
												}
											},
											{
												"assignments": [
													1849
												],
												"declarations": [
													{
														"constant": false,
														"id": 1849,
														"mutability": "mutable",
														"name": "previousOwner",
														"nameLocation": "12202:13:9",
														"nodeType": "VariableDeclaration",
														"scope": 1882,
														"src": "12194:21:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1848,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "12194:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1858,
												"initialValue": {
													"arguments": [
														{
															"id": 1851,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1828,
															"src": "12226:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1852,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1830,
															"src": "12230:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1855,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12247:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1854,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "12239:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1853,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "12239:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1856,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12239:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1850,
														"name": "_update",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1699,
														"src": "12218:7:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$",
															"typeString": "function (address,uint256,address) returns (address)"
														}
													},
													"id": 1857,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12218:32:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "12194:56:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1864,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1859,
														"name": "previousOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1849,
														"src": "12264:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1862,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "12289:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 1861,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "12281:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1860,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "12281:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 1863,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "12281:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "12264:27:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"id": 1872,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 1870,
															"name": "previousOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1849,
															"src": "12366:13:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "!=",
														"rightExpression": {
															"id": 1871,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1826,
															"src": "12383:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"src": "12366:21:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"id": 1880,
													"nodeType": "IfStatement",
													"src": "12362:109:9",
													"trueBody": {
														"id": 1879,
														"nodeType": "Block",
														"src": "12389:82:9",
														"statements": [
															{
																"errorCall": {
																	"arguments": [
																		{
																			"id": 1874,
																			"name": "from",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1826,
																			"src": "12431:4:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		{
																			"id": 1875,
																			"name": "tokenId",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1830,
																			"src": "12437:7:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		{
																			"id": 1876,
																			"name": "previousOwner",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1849,
																			"src": "12446:13:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			},
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			{
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		],
																		"id": 1873,
																		"name": "ERC721IncorrectOwner",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 654,
																		"src": "12410:20:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$",
																			"typeString": "function (address,uint256,address) pure"
																		}
																	},
																	"id": 1877,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "12410:50:9",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_tuple$__$",
																		"typeString": "tuple()"
																	}
																},
																"id": 1878,
																"nodeType": "RevertStatement",
																"src": "12403:57:9"
															}
														]
													}
												},
												"id": 1881,
												"nodeType": "IfStatement",
												"src": "12260:211:9",
												"trueBody": {
													"id": 1869,
													"nodeType": "Block",
													"src": "12293:63:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 1866,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1830,
																		"src": "12337:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 1865,
																	"name": "ERC721NonexistentToken",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 645,
																	"src": "12314:22:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
																		"typeString": "function (uint256) pure"
																	}
																},
																"id": 1867,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "12314:31:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1868,
															"nodeType": "RevertStatement",
															"src": "12307:38:9"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 1824,
										"nodeType": "StructuredDocumentation",
										"src": "11699:313:9",
										"text": " @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."
									},
									"id": 1883,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_transfer",
									"nameLocation": "12026:9:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1831,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1826,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "12044:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1883,
												"src": "12036:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1825,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12036:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1828,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "12058:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1883,
												"src": "12050:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1827,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12050:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1830,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "12070:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1883,
												"src": "12062:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1829,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "12062:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12035:43:9"
									},
									"returnParameters": {
										"id": 1832,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12088:0:9"
									},
									"scope": 2142,
									"src": "12017:460:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1900,
										"nodeType": "Block",
										"src": "13485:53:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1894,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1886,
															"src": "13509:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1895,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1888,
															"src": "13515:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1896,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1890,
															"src": "13519:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"hexValue": "",
															"id": 1897,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "13528:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															},
															"value": ""
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															}
														],
														"id": 1893,
														"name": "_safeTransfer",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1901,
															1927
														],
														"referencedDeclaration": 1927,
														"src": "13495:13:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,address,uint256,bytes memory)"
														}
													},
													"id": 1898,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13495:36:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1899,
												"nodeType": "ExpressionStatement",
												"src": "13495:36:9"
											}
										]
									},
									"documentation": {
										"id": 1884,
										"nodeType": "StructuredDocumentation",
										"src": "12483:922:9",
										"text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."
									},
									"id": 1901,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_safeTransfer",
									"nameLocation": "13419:13:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1891,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1886,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "13441:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1901,
												"src": "13433:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1885,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13433:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1888,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "13455:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1901,
												"src": "13447:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1887,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13447:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1890,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "13467:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1901,
												"src": "13459:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1889,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13459:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13432:43:9"
									},
									"returnParameters": {
										"id": 1892,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13485:0:9"
									},
									"scope": 2142,
									"src": "13410:128:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1926,
										"nodeType": "Block",
										"src": "13877:102:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1914,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1904,
															"src": "13897:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1915,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1906,
															"src": "13903:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1916,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1908,
															"src": "13907:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1913,
														"name": "_transfer",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1883,
														"src": "13887:9:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,address,uint256)"
														}
													},
													"id": 1917,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13887:28:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1918,
												"nodeType": "ExpressionStatement",
												"src": "13887:28:9"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 1920,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1904,
															"src": "13948:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1921,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1906,
															"src": "13954:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1922,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1908,
															"src": "13958:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 1923,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1910,
															"src": "13967:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 1919,
														"name": "_checkOnERC721Received",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2141,
														"src": "13925:22:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,address,uint256,bytes memory)"
														}
													},
													"id": 1924,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13925:47:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1925,
												"nodeType": "ExpressionStatement",
												"src": "13925:47:9"
											}
										]
									},
									"documentation": {
										"id": 1902,
										"nodeType": "StructuredDocumentation",
										"src": "13544:226:9",
										"text": " @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."
									},
									"id": 1927,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_safeTransfer",
									"nameLocation": "13784:13:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1911,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1904,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "13806:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1927,
												"src": "13798:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1903,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13798:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1906,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "13820:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1927,
												"src": "13812:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1905,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13812:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1908,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "13832:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1927,
												"src": "13824:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1907,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13824:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1910,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "13854:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1927,
												"src": "13841:17:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1909,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "13841:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13797:62:9"
									},
									"returnParameters": {
										"id": 1912,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13877:0:9"
									},
									"scope": 2142,
									"src": "13775:204:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1944,
										"nodeType": "Block",
										"src": "14492:50:9",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 1938,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1930,
															"src": "14511:2:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1939,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1932,
															"src": "14515:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 1940,
															"name": "auth",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1934,
															"src": "14524:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"hexValue": "74727565",
															"id": 1941,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "bool",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "14530:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"value": "true"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														],
														"id": 1937,
														"name": "_approve",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1945,
															2011
														],
														"referencedDeclaration": 2011,
														"src": "14502:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$",
															"typeString": "function (address,uint256,address,bool)"
														}
													},
													"id": 1942,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14502:33:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1943,
												"nodeType": "ExpressionStatement",
												"src": "14502:33:9"
											}
										]
									},
									"documentation": {
										"id": 1928,
										"nodeType": "StructuredDocumentation",
										"src": "13985:432:9",
										"text": " @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."
									},
									"id": 1945,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_approve",
									"nameLocation": "14431:8:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1935,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1930,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "14448:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 1945,
												"src": "14440:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1929,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14440:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1932,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "14460:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1945,
												"src": "14452:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1931,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "14452:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1934,
												"mutability": "mutable",
												"name": "auth",
												"nameLocation": "14477:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 1945,
												"src": "14469:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1933,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14469:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14439:43:9"
									},
									"returnParameters": {
										"id": 1936,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14492:0:9"
									},
									"scope": 2142,
									"src": "14422:120:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2010,
										"nodeType": "Block",
										"src": "14818:568:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1964,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1957,
														"name": "emitEvent",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1954,
														"src": "14884:9:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"id": 1963,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 1958,
															"name": "auth",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1952,
															"src": "14897:4:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "!=",
														"rightExpression": {
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1961,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14913:1:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	}
																],
																"id": 1960,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "14905:7:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1959,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "14905:7:9",
																	"typeDescriptions": {}
																}
															},
															"id": 1962,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14905:10:9",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"src": "14897:18:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "14884:31:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2003,
												"nodeType": "IfStatement",
												"src": "14880:460:9",
												"trueBody": {
													"id": 2002,
													"nodeType": "Block",
													"src": "14917:423:9",
													"statements": [
														{
															"assignments": [
																1966
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 1966,
																	"mutability": "mutable",
																	"name": "owner",
																	"nameLocation": "14939:5:9",
																	"nodeType": "VariableDeclaration",
																	"scope": 2002,
																	"src": "14931:13:9",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"typeName": {
																		"id": 1965,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "14931:7:9",
																		"stateMutability": "nonpayable",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 1970,
															"initialValue": {
																"arguments": [
																	{
																		"id": 1968,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1950,
																		"src": "14961:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 1967,
																	"name": "_requireOwned",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2077,
																	"src": "14947:13:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
																		"typeString": "function (uint256) view returns (address)"
																	}
																},
																"id": 1969,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "14947:22:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "14931:38:9"
														},
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"id": 1986,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"commonType": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"id": 1980,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"commonType": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		"id": 1976,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 1971,
																			"name": "auth",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1952,
																			"src": "15097:4:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "!=",
																		"rightExpression": {
																			"arguments": [
																				{
																					"hexValue": "30",
																					"id": 1974,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "15113:1:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					}
																				],
																				"id": 1973,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "15105:7:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_address_$",
																					"typeString": "type(address)"
																				},
																				"typeName": {
																					"id": 1972,
																					"name": "address",
																					"nodeType": "ElementaryTypeName",
																					"src": "15105:7:9",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 1975,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "15105:10:9",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"src": "15097:18:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "&&",
																	"rightExpression": {
																		"commonType": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		"id": 1979,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 1977,
																			"name": "owner",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1966,
																			"src": "15119:5:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "!=",
																		"rightExpression": {
																			"id": 1978,
																			"name": "auth",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1952,
																			"src": "15128:4:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"src": "15119:13:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"src": "15097:35:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&&",
																"rightExpression": {
																	"id": 1985,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "UnaryOperation",
																	"operator": "!",
																	"prefix": true,
																	"src": "15136:30:9",
																	"subExpression": {
																		"arguments": [
																			{
																				"id": 1982,
																				"name": "owner",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1966,
																				"src": "15154:5:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			{
																				"id": 1983,
																				"name": "auth",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1952,
																				"src": "15161:4:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				},
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			],
																			"id": 1981,
																			"name": "isApprovedForAll",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1404,
																			"src": "15137:16:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
																				"typeString": "function (address,address) view returns (bool)"
																			}
																		},
																		"id": 1984,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "15137:29:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"src": "15097:69:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 1992,
															"nodeType": "IfStatement",
															"src": "15093:142:9",
															"trueBody": {
																"id": 1991,
																"nodeType": "Block",
																"src": "15168:67:9",
																"statements": [
																	{
																		"errorCall": {
																			"arguments": [
																				{
																					"id": 1988,
																					"name": "auth",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1952,
																					"src": "15215:4:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				],
																				"id": 1987,
																				"name": "ERC721InvalidApprover",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 676,
																				"src": "15193:21:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																					"typeString": "function (address) pure"
																				}
																			},
																			"id": 1989,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "15193:27:9",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 1990,
																		"nodeType": "RevertStatement",
																		"src": "15186:34:9"
																	}
																]
															}
														},
														{
															"condition": {
																"id": 1993,
																"name": "emitEvent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1954,
																"src": "15253:9:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 2001,
															"nodeType": "IfStatement",
															"src": "15249:81:9",
															"trueBody": {
																"id": 2000,
																"nodeType": "Block",
																"src": "15264:66:9",
																"statements": [
																	{
																		"eventCall": {
																			"arguments": [
																				{
																					"id": 1995,
																					"name": "owner",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1966,
																					"src": "15296:5:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"id": 1996,
																					"name": "to",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1948,
																					"src": "15303:2:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"id": 1997,
																					"name": "tokenId",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1950,
																					"src": "15307:7:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"id": 1994,
																				"name": "Approval",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2167,
																				"src": "15287:8:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
																					"typeString": "function (address,address,uint256)"
																				}
																			},
																			"id": 1998,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "15287:28:9",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 1999,
																		"nodeType": "EmitStatement",
																		"src": "15282:33:9"
																	}
																]
															}
														}
													]
												}
											},
											{
												"expression": {
													"id": 2008,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 2004,
															"name": "_tokenApprovals",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1180,
															"src": "15350:15:9",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
																"typeString": "mapping(uint256 => address)"
															}
														},
														"id": 2006,
														"indexExpression": {
															"id": 2005,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1950,
															"src": "15366:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "15350:24:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 2007,
														"name": "to",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1948,
														"src": "15377:2:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "15350:29:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 2009,
												"nodeType": "ExpressionStatement",
												"src": "15350:29:9"
											}
										]
									},
									"documentation": {
										"id": 1946,
										"nodeType": "StructuredDocumentation",
										"src": "14548:171:9",
										"text": " @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."
									},
									"id": 2011,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_approve",
									"nameLocation": "14733:8:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1955,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1948,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "14750:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 2011,
												"src": "14742:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1947,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14742:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1950,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "14762:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 2011,
												"src": "14754:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1949,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "14754:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1952,
												"mutability": "mutable",
												"name": "auth",
												"nameLocation": "14779:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 2011,
												"src": "14771:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1951,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14771:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1954,
												"mutability": "mutable",
												"name": "emitEvent",
												"nameLocation": "14790:9:9",
												"nodeType": "VariableDeclaration",
												"scope": 2011,
												"src": "14785:14:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1953,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14785:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14741:59:9"
									},
									"returnParameters": {
										"id": 1956,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14818:0:9"
									},
									"scope": 2142,
									"src": "14724:662:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2047,
										"nodeType": "Block",
										"src": "15688:219:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2026,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2021,
														"name": "operator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2016,
														"src": "15702:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2024,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "15722:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 2023,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "15714:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2022,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "15714:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 2025,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "15714:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "15702:22:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2032,
												"nodeType": "IfStatement",
												"src": "15698:91:9",
												"trueBody": {
													"id": 2031,
													"nodeType": "Block",
													"src": "15726:63:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 2028,
																		"name": "operator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2016,
																		"src": "15769:8:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2027,
																	"name": "ERC721InvalidOperator",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 681,
																	"src": "15747:21:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 2029,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "15747:31:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2030,
															"nodeType": "RevertStatement",
															"src": "15740:38:9"
														}
													]
												}
											},
											{
												"expression": {
													"id": 2039,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"baseExpression": {
																"id": 2033,
																"name": "_operatorApprovals",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1186,
																"src": "15798:18:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$",
																	"typeString": "mapping(address => mapping(address => bool))"
																}
															},
															"id": 2036,
															"indexExpression": {
																"id": 2034,
																"name": "owner",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2014,
																"src": "15817:5:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "15798:25:9",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
																"typeString": "mapping(address => bool)"
															}
														},
														"id": 2037,
														"indexExpression": {
															"id": 2035,
															"name": "operator",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2016,
															"src": "15824:8:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "15798:35:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 2038,
														"name": "approved",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2018,
														"src": "15836:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "15798:46:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2040,
												"nodeType": "ExpressionStatement",
												"src": "15798:46:9"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 2042,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2014,
															"src": "15874:5:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2043,
															"name": "operator",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2016,
															"src": "15881:8:9",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2044,
															"name": "approved",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2018,
															"src": "15891:8:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														],
														"id": 2041,
														"name": "ApprovalForAll",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2176,
														"src": "15859:14:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",
															"typeString": "function (address,address,bool)"
														}
													},
													"id": 2045,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15859:41:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2046,
												"nodeType": "EmitStatement",
												"src": "15854:46:9"
											}
										]
									},
									"documentation": {
										"id": 2012,
										"nodeType": "StructuredDocumentation",
										"src": "15392:198:9",
										"text": " @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."
									},
									"id": 2048,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_setApprovalForAll",
									"nameLocation": "15604:18:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2019,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2014,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "15631:5:9",
												"nodeType": "VariableDeclaration",
												"scope": 2048,
												"src": "15623:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2013,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15623:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2016,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "15646:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 2048,
												"src": "15638:16:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2015,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15638:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2018,
												"mutability": "mutable",
												"name": "approved",
												"nameLocation": "15661:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 2048,
												"src": "15656:13:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2017,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "15656:4:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15622:48:9"
									},
									"returnParameters": {
										"id": 2020,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15688:0:9"
									},
									"scope": 2142,
									"src": "15595:312:9",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2076,
										"nodeType": "Block",
										"src": "16214:169:9",
										"statements": [
											{
												"assignments": [
													2057
												],
												"declarations": [
													{
														"constant": false,
														"id": 2057,
														"mutability": "mutable",
														"name": "owner",
														"nameLocation": "16232:5:9",
														"nodeType": "VariableDeclaration",
														"scope": 2076,
														"src": "16224:13:9",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 2056,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "16224:7:9",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2061,
												"initialValue": {
													"arguments": [
														{
															"id": 2059,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2051,
															"src": "16249:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 2058,
														"name": "_ownerOf",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1507,
														"src": "16240:8:9",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
															"typeString": "function (uint256) view returns (address)"
														}
													},
													"id": 2060,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16240:17:9",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "16224:33:9"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2067,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2062,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2057,
														"src": "16271:5:9",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2065,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "16288:1:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 2064,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "16280:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2063,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "16280:7:9",
																"typeDescriptions": {}
															}
														},
														"id": 2066,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "16280:10:9",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "16271:19:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2073,
												"nodeType": "IfStatement",
												"src": "16267:88:9",
												"trueBody": {
													"id": 2072,
													"nodeType": "Block",
													"src": "16292:63:9",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 2069,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2051,
																		"src": "16336:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 2068,
																	"name": "ERC721NonexistentToken",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 645,
																	"src": "16313:22:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
																		"typeString": "function (uint256) pure"
																	}
																},
																"id": 2070,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "16313:31:9",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2071,
															"nodeType": "RevertStatement",
															"src": "16306:38:9"
														}
													]
												}
											},
											{
												"expression": {
													"id": 2074,
													"name": "owner",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 2057,
													"src": "16371:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 2055,
												"id": 2075,
												"nodeType": "Return",
												"src": "16364:12:9"
											}
										]
									},
									"documentation": {
										"id": 2049,
										"nodeType": "StructuredDocumentation",
										"src": "15913:224:9",
										"text": " @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."
									},
									"id": 2077,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_requireOwned",
									"nameLocation": "16151:13:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2052,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2051,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "16173:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 2077,
												"src": "16165:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2050,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "16165:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16164:17:9"
									},
									"returnParameters": {
										"id": 2055,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2054,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2077,
												"src": "16205:7:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2053,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16205:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16204:9:9"
									},
									"scope": 2142,
									"src": "16142:241:9",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2140,
										"nodeType": "Block",
										"src": "17024:680:9",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2093,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"expression": {
																"id": 2089,
																"name": "to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2082,
																"src": "17038:2:9",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"id": 2090,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "17041:4:9",
															"memberName": "code",
															"nodeType": "MemberAccess",
															"src": "17038:7:9",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 2091,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "17046:6:9",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "17038:14:9",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "30",
														"id": 2092,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "17055:1:9",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "17038:18:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2139,
												"nodeType": "IfStatement",
												"src": "17034:664:9",
												"trueBody": {
													"id": 2138,
													"nodeType": "Block",
													"src": "17058:640:9",
													"statements": [
														{
															"clauses": [
																{
																	"block": {
																		"id": 2118,
																		"nodeType": "Block",
																		"src": "17172:162:9",
																		"statements": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes4",
																						"typeString": "bytes4"
																					},
																					"id": 2111,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 2107,
																						"name": "retval",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 2105,
																						"src": "17194:6:9",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes4",
																							"typeString": "bytes4"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "!=",
																					"rightExpression": {
																						"expression": {
																							"expression": {
																								"id": 2108,
																								"name": "IERC721Receiver",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 2277,
																								"src": "17204:15:9",
																								"typeDescriptions": {
																									"typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2277_$",
																									"typeString": "type(contract IERC721Receiver)"
																								}
																							},
																							"id": 2109,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"memberLocation": "17220:16:9",
																							"memberName": "onERC721Received",
																							"nodeType": "MemberAccess",
																							"referencedDeclaration": 2276,
																							"src": "17204:32:9",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$",
																								"typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"
																							}
																						},
																						"id": 2110,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"memberLocation": "17237:8:9",
																						"memberName": "selector",
																						"nodeType": "MemberAccess",
																						"src": "17204:41:9",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes4",
																							"typeString": "bytes4"
																						}
																					},
																					"src": "17194:51:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"id": 2117,
																				"nodeType": "IfStatement",
																				"src": "17190:130:9",
																				"trueBody": {
																					"id": 2116,
																					"nodeType": "Block",
																					"src": "17247:73:9",
																					"statements": [
																						{
																							"errorCall": {
																								"arguments": [
																									{
																										"id": 2113,
																										"name": "to",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 2082,
																										"src": "17298:2:9",
																										"typeDescriptions": {
																											"typeIdentifier": "t_address",
																											"typeString": "address"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_address",
																											"typeString": "address"
																										}
																									],
																									"id": 2112,
																									"name": "ERC721InvalidReceiver",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 664,
																									"src": "17276:21:9",
																									"typeDescriptions": {
																										"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																										"typeString": "function (address) pure"
																									}
																								},
																								"id": 2114,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "functionCall",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "17276:25:9",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_tuple$__$",
																									"typeString": "tuple()"
																								}
																							},
																							"id": 2115,
																							"nodeType": "RevertStatement",
																							"src": "17269:32:9"
																						}
																					]
																				}
																			}
																		]
																	},
																	"errorName": "",
																	"id": 2119,
																	"nodeType": "TryCatchClause",
																	"parameters": {
																		"id": 2106,
																		"nodeType": "ParameterList",
																		"parameters": [
																			{
																				"constant": false,
																				"id": 2105,
																				"mutability": "mutable",
																				"name": "retval",
																				"nameLocation": "17164:6:9",
																				"nodeType": "VariableDeclaration",
																				"scope": 2119,
																				"src": "17157:13:9",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes4",
																					"typeString": "bytes4"
																				},
																				"typeName": {
																					"id": 2104,
																					"name": "bytes4",
																					"nodeType": "ElementaryTypeName",
																					"src": "17157:6:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes4",
																						"typeString": "bytes4"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"src": "17156:15:9"
																	},
																	"src": "17148:186:9"
																},
																{
																	"block": {
																		"id": 2135,
																		"nodeType": "Block",
																		"src": "17363:325:9",
																		"statements": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 2126,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"expression": {
																							"id": 2123,
																							"name": "reason",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 2121,
																							"src": "17385:6:9",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes_memory_ptr",
																								"typeString": "bytes memory"
																							}
																						},
																						"id": 2124,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"memberLocation": "17392:6:9",
																						"memberName": "length",
																						"nodeType": "MemberAccess",
																						"src": "17385:13:9",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 2125,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "17402:1:9",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "17385:18:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"id": 2133,
																					"nodeType": "Block",
																					"src": "17484:190:9",
																					"statements": [
																						{
																							"AST": {
																								"nodeType": "YulBlock",
																								"src": "17570:86:9",
																								"statements": [
																									{
																										"expression": {
																											"arguments": [
																												{
																													"arguments": [
																														{
																															"kind": "number",
																															"nodeType": "YulLiteral",
																															"src": "17607:2:9",
																															"type": "",
																															"value": "32"
																														},
																														{
																															"name": "reason",
																															"nodeType": "YulIdentifier",
																															"src": "17611:6:9"
																														}
																													],
																													"functionName": {
																														"name": "add",
																														"nodeType": "YulIdentifier",
																														"src": "17603:3:9"
																													},
																													"nodeType": "YulFunctionCall",
																													"src": "17603:15:9"
																												},
																												{
																													"arguments": [
																														{
																															"name": "reason",
																															"nodeType": "YulIdentifier",
																															"src": "17626:6:9"
																														}
																													],
																													"functionName": {
																														"name": "mload",
																														"nodeType": "YulIdentifier",
																														"src": "17620:5:9"
																													},
																													"nodeType": "YulFunctionCall",
																													"src": "17620:13:9"
																												}
																											],
																											"functionName": {
																												"name": "revert",
																												"nodeType": "YulIdentifier",
																												"src": "17596:6:9"
																											},
																											"nodeType": "YulFunctionCall",
																											"src": "17596:38:9"
																										},
																										"nodeType": "YulExpressionStatement",
																										"src": "17596:38:9"
																									}
																								]
																							},
																							"documentation": "@solidity memory-safe-assembly",
																							"evmVersion": "shanghai",
																							"externalReferences": [
																								{
																									"declaration": 2121,
																									"isOffset": false,
																									"isSlot": false,
																									"src": "17611:6:9",
																									"valueSize": 1
																								},
																								{
																									"declaration": 2121,
																									"isOffset": false,
																									"isSlot": false,
																									"src": "17626:6:9",
																									"valueSize": 1
																								}
																							],
																							"id": 2132,
																							"nodeType": "InlineAssembly",
																							"src": "17561:95:9"
																						}
																					]
																				},
																				"id": 2134,
																				"nodeType": "IfStatement",
																				"src": "17381:293:9",
																				"trueBody": {
																					"id": 2131,
																					"nodeType": "Block",
																					"src": "17405:73:9",
																					"statements": [
																						{
																							"errorCall": {
																								"arguments": [
																									{
																										"id": 2128,
																										"name": "to",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 2082,
																										"src": "17456:2:9",
																										"typeDescriptions": {
																											"typeIdentifier": "t_address",
																											"typeString": "address"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_address",
																											"typeString": "address"
																										}
																									],
																									"id": 2127,
																									"name": "ERC721InvalidReceiver",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 664,
																									"src": "17434:21:9",
																									"typeDescriptions": {
																										"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																										"typeString": "function (address) pure"
																									}
																								},
																								"id": 2129,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "functionCall",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "17434:25:9",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_tuple$__$",
																									"typeString": "tuple()"
																								}
																							},
																							"id": 2130,
																							"nodeType": "RevertStatement",
																							"src": "17427:32:9"
																						}
																					]
																				}
																			}
																		]
																	},
																	"errorName": "",
																	"id": 2136,
																	"nodeType": "TryCatchClause",
																	"parameters": {
																		"id": 2122,
																		"nodeType": "ParameterList",
																		"parameters": [
																			{
																				"constant": false,
																				"id": 2121,
																				"mutability": "mutable",
																				"name": "reason",
																				"nameLocation": "17355:6:9",
																				"nodeType": "VariableDeclaration",
																				"scope": 2136,
																				"src": "17342:19:9",
																				"stateVariable": false,
																				"storageLocation": "memory",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes"
																				},
																				"typeName": {
																					"id": 2120,
																					"name": "bytes",
																					"nodeType": "ElementaryTypeName",
																					"src": "17342:5:9",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes_storage_ptr",
																						"typeString": "bytes"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"src": "17341:21:9"
																	},
																	"src": "17335:353:9"
																}
															],
															"externalCall": {
																"arguments": [
																	{
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"id": 2098,
																			"name": "_msgSender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2871,
																			"src": "17113:10:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																				"typeString": "function () view returns (address)"
																			}
																		},
																		"id": 2099,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "17113:12:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 2100,
																		"name": "from",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2080,
																		"src": "17127:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 2101,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2084,
																		"src": "17133:7:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 2102,
																		"name": "data",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2086,
																		"src": "17142:4:9",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"expression": {
																		"arguments": [
																			{
																				"id": 2095,
																				"name": "to",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2082,
																				"src": "17092:2:9",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			],
																			"id": 2094,
																			"name": "IERC721Receiver",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2277,
																			"src": "17076:15:9",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2277_$",
																				"typeString": "type(contract IERC721Receiver)"
																			}
																		},
																		"id": 2096,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "17076:19:9",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC721Receiver_$2277",
																			"typeString": "contract IERC721Receiver"
																		}
																	},
																	"id": 2097,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "17096:16:9",
																	"memberName": "onERC721Received",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 2276,
																	"src": "17076:36:9",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
																		"typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)"
																	}
																},
																"id": 2103,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "17076:71:9",
																"tryCall": true,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"id": 2137,
															"nodeType": "TryStatement",
															"src": "17072:616:9"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 2078,
										"nodeType": "StructuredDocumentation",
										"src": "16389:528:9",
										"text": " @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call"
									},
									"id": 2141,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_checkOnERC721Received",
									"nameLocation": "16931:22:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2087,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2080,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "16962:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 2141,
												"src": "16954:12:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2079,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16954:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2082,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "16976:2:9",
												"nodeType": "VariableDeclaration",
												"scope": 2141,
												"src": "16968:10:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2081,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16968:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2084,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "16988:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 2141,
												"src": "16980:15:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2083,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "16980:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2086,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "17010:4:9",
												"nodeType": "VariableDeclaration",
												"scope": 2141,
												"src": "16997:17:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2085,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "16997:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16953:62:9"
									},
									"returnParameters": {
										"id": 2088,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17024:0:9"
									},
									"scope": 2142,
									"src": "16922:782:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 2143,
							"src": "780:16926:9",
							"usedErrors": [
								640,
								645,
								654,
								659,
								664,
								671,
								676,
								681
							],
							"usedEvents": [
								2158,
								2167,
								2176
							]
						}
					],
					"src": "111:17596:9"
				},
				"id": 9
			},
			"@openzeppelin/contracts/token/ERC721/IERC721.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
					"exportedSymbols": {
						"IERC165": [
							3172
						],
						"IERC721": [
							2259
						]
					},
					"id": 2260,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2144,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "108:24:10"
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
							"file": "../../utils/introspection/IERC165.sol",
							"id": 2146,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2260,
							"sourceUnit": 3173,
							"src": "134:62:10",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2145,
										"name": "IERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3172,
										"src": "142:7:10",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 2148,
										"name": "IERC165",
										"nameLocations": [
											"287:7:10"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3172,
										"src": "287:7:10"
									},
									"id": 2149,
									"nodeType": "InheritanceSpecifier",
									"src": "287:7:10"
								}
							],
							"canonicalName": "IERC721",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 2147,
								"nodeType": "StructuredDocumentation",
								"src": "198:67:10",
								"text": " @dev Required interface of an ERC721 compliant contract."
							},
							"fullyImplemented": false,
							"id": 2259,
							"linearizedBaseContracts": [
								2259,
								3172
							],
							"name": "IERC721",
							"nameLocation": "276:7:10",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"anonymous": false,
									"documentation": {
										"id": 2150,
										"nodeType": "StructuredDocumentation",
										"src": "301:88:10",
										"text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`."
									},
									"eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
									"id": 2158,
									"name": "Transfer",
									"nameLocation": "400:8:10",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 2157,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2152,
												"indexed": true,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "425:4:10",
												"nodeType": "VariableDeclaration",
												"scope": 2158,
												"src": "409:20:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2151,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "409:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2154,
												"indexed": true,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "447:2:10",
												"nodeType": "VariableDeclaration",
												"scope": 2158,
												"src": "431:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2153,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "431:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2156,
												"indexed": true,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "467:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2158,
												"src": "451:23:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2155,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "451:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "408:67:10"
									},
									"src": "394:82:10"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 2159,
										"nodeType": "StructuredDocumentation",
										"src": "482:94:10",
										"text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."
									},
									"eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
									"id": 2167,
									"name": "Approval",
									"nameLocation": "587:8:10",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 2166,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2161,
												"indexed": true,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "612:5:10",
												"nodeType": "VariableDeclaration",
												"scope": 2167,
												"src": "596:21:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2160,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "596:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2163,
												"indexed": true,
												"mutability": "mutable",
												"name": "approved",
												"nameLocation": "635:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2167,
												"src": "619:24:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2162,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "619:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2165,
												"indexed": true,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "661:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2167,
												"src": "645:23:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2164,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "645:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "595:74:10"
									},
									"src": "581:89:10"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 2168,
										"nodeType": "StructuredDocumentation",
										"src": "676:117:10",
										"text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
									},
									"eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31",
									"id": 2176,
									"name": "ApprovalForAll",
									"nameLocation": "804:14:10",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 2175,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2170,
												"indexed": true,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "835:5:10",
												"nodeType": "VariableDeclaration",
												"scope": 2176,
												"src": "819:21:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2169,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "819:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2172,
												"indexed": true,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "858:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2176,
												"src": "842:24:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2171,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "842:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2174,
												"indexed": false,
												"mutability": "mutable",
												"name": "approved",
												"nameLocation": "873:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2176,
												"src": "868:13:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2173,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "868:4:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "818:64:10"
									},
									"src": "798:85:10"
								},
								{
									"documentation": {
										"id": 2177,
										"nodeType": "StructuredDocumentation",
										"src": "889:76:10",
										"text": " @dev Returns the number of tokens in ``owner``'s account."
									},
									"functionSelector": "70a08231",
									"id": 2184,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "balanceOf",
									"nameLocation": "979:9:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2180,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2179,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "997:5:10",
												"nodeType": "VariableDeclaration",
												"scope": 2184,
												"src": "989:13:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2178,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "989:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "988:15:10"
									},
									"returnParameters": {
										"id": 2183,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2182,
												"mutability": "mutable",
												"name": "balance",
												"nameLocation": "1035:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2184,
												"src": "1027:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2181,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1027:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1026:17:10"
									},
									"scope": 2259,
									"src": "970:74:10",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2185,
										"nodeType": "StructuredDocumentation",
										"src": "1050:131:10",
										"text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."
									},
									"functionSelector": "6352211e",
									"id": 2192,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "ownerOf",
									"nameLocation": "1195:7:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2188,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2187,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "1211:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2192,
												"src": "1203:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2186,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1203:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1202:17:10"
									},
									"returnParameters": {
										"id": 2191,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2190,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1251:5:10",
												"nodeType": "VariableDeclaration",
												"scope": 2192,
												"src": "1243:13:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2189,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1243:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1242:15:10"
									},
									"scope": 2259,
									"src": "1186:72:10",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2193,
										"nodeType": "StructuredDocumentation",
										"src": "1264:565:10",
										"text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n   a safe transfer.\n Emits a {Transfer} event."
									},
									"functionSelector": "b88d4fde",
									"id": 2204,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "1843:16:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2202,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2195,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "1868:4:10",
												"nodeType": "VariableDeclaration",
												"scope": 2204,
												"src": "1860:12:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2194,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1860:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2197,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1882:2:10",
												"nodeType": "VariableDeclaration",
												"scope": 2204,
												"src": "1874:10:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2196,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1874:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2199,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "1894:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2204,
												"src": "1886:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2198,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1886:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2201,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "1918:4:10",
												"nodeType": "VariableDeclaration",
												"scope": 2204,
												"src": "1903:19:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2200,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "1903:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1859:64:10"
									},
									"returnParameters": {
										"id": 2203,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1932:0:10"
									},
									"scope": 2259,
									"src": "1834:99:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2205,
										"nodeType": "StructuredDocumentation",
										"src": "1939:705:10",
										"text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n   {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n   a safe transfer.\n Emits a {Transfer} event."
									},
									"functionSelector": "42842e0e",
									"id": 2214,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "2658:16:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2212,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2207,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "2683:4:10",
												"nodeType": "VariableDeclaration",
												"scope": 2214,
												"src": "2675:12:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2206,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2675:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2209,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "2697:2:10",
												"nodeType": "VariableDeclaration",
												"scope": 2214,
												"src": "2689:10:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2208,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2689:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2211,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2709:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2214,
												"src": "2701:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2210,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2701:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2674:43:10"
									},
									"returnParameters": {
										"id": 2213,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2726:0:10"
									},
									"scope": 2259,
									"src": "2649:78:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2215,
										"nodeType": "StructuredDocumentation",
										"src": "2733:732:10",
										"text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."
									},
									"functionSelector": "23b872dd",
									"id": 2224,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "transferFrom",
									"nameLocation": "3479:12:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2222,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2217,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "3500:4:10",
												"nodeType": "VariableDeclaration",
												"scope": 2224,
												"src": "3492:12:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2216,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3492:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2219,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "3514:2:10",
												"nodeType": "VariableDeclaration",
												"scope": 2224,
												"src": "3506:10:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2218,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3506:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2221,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "3526:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2224,
												"src": "3518:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2220,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3518:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3491:43:10"
									},
									"returnParameters": {
										"id": 2223,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3543:0:10"
									},
									"scope": 2259,
									"src": "3470:74:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2225,
										"nodeType": "StructuredDocumentation",
										"src": "3550:452:10",
										"text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."
									},
									"functionSelector": "095ea7b3",
									"id": 2232,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "approve",
									"nameLocation": "4016:7:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2230,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2227,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "4032:2:10",
												"nodeType": "VariableDeclaration",
												"scope": 2232,
												"src": "4024:10:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2226,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4024:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2229,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4044:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2232,
												"src": "4036:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2228,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4036:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4023:29:10"
									},
									"returnParameters": {
										"id": 2231,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4061:0:10"
									},
									"scope": 2259,
									"src": "4007:55:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2233,
										"nodeType": "StructuredDocumentation",
										"src": "4068:315:10",
										"text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event."
									},
									"functionSelector": "a22cb465",
									"id": 2240,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "setApprovalForAll",
									"nameLocation": "4397:17:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2238,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2235,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "4423:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2240,
												"src": "4415:16:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2234,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4415:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2237,
												"mutability": "mutable",
												"name": "approved",
												"nameLocation": "4438:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2240,
												"src": "4433:13:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2236,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "4433:4:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4414:33:10"
									},
									"returnParameters": {
										"id": 2239,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4456:0:10"
									},
									"scope": 2259,
									"src": "4388:69:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2241,
										"nodeType": "StructuredDocumentation",
										"src": "4463:139:10",
										"text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."
									},
									"functionSelector": "081812fc",
									"id": 2248,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getApproved",
									"nameLocation": "4616:11:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2244,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2243,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4636:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 2248,
												"src": "4628:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2242,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4628:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4627:17:10"
									},
									"returnParameters": {
										"id": 2247,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2246,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "4676:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2248,
												"src": "4668:16:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2245,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4668:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4667:18:10"
									},
									"scope": 2259,
									"src": "4607:79:10",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2249,
										"nodeType": "StructuredDocumentation",
										"src": "4692:138:10",
										"text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"
									},
									"functionSelector": "e985e9c5",
									"id": 2258,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "isApprovedForAll",
									"nameLocation": "4844:16:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2254,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2251,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "4869:5:10",
												"nodeType": "VariableDeclaration",
												"scope": 2258,
												"src": "4861:13:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2250,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4861:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2253,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "4884:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 2258,
												"src": "4876:16:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2252,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4876:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4860:33:10"
									},
									"returnParameters": {
										"id": 2257,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2256,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2258,
												"src": "4917:4:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2255,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "4917:4:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4916:6:10"
									},
									"scope": 2259,
									"src": "4835:88:10",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 2260,
							"src": "266:4659:10",
							"usedErrors": [],
							"usedEvents": [
								2158,
								2167,
								2176
							]
						}
					],
					"src": "108:4818:10"
				},
				"id": 10
			},
			"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
					"exportedSymbols": {
						"IERC721Receiver": [
							2277
						]
					},
					"id": 2278,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2261,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "116:24:11"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC721Receiver",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 2262,
								"nodeType": "StructuredDocumentation",
								"src": "142:152:11",
								"text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."
							},
							"fullyImplemented": false,
							"id": 2277,
							"linearizedBaseContracts": [
								2277
							],
							"name": "IERC721Receiver",
							"nameLocation": "305:15:11",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 2263,
										"nodeType": "StructuredDocumentation",
										"src": "327:500:11",
										"text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."
									},
									"functionSelector": "150b7a02",
									"id": 2276,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "onERC721Received",
									"nameLocation": "841:16:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2272,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2265,
												"mutability": "mutable",
												"name": "operator",
												"nameLocation": "875:8:11",
												"nodeType": "VariableDeclaration",
												"scope": 2276,
												"src": "867:16:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2264,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "867:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2267,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "901:4:11",
												"nodeType": "VariableDeclaration",
												"scope": 2276,
												"src": "893:12:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2266,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "893:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2269,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "923:7:11",
												"nodeType": "VariableDeclaration",
												"scope": 2276,
												"src": "915:15:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2268,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "915:7:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2271,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "955:4:11",
												"nodeType": "VariableDeclaration",
												"scope": 2276,
												"src": "940:19:11",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2270,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "940:5:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "857:108:11"
									},
									"returnParameters": {
										"id": 2275,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2274,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2276,
												"src": "984:6:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 2273,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "984:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "983:8:11"
									},
									"scope": 2277,
									"src": "832:160:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 2278,
							"src": "295:699:11",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "116:879:11"
				},
				"id": 11
			},
			"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
					"exportedSymbols": {
						"IERC721": [
							2259
						],
						"IERC721Metadata": [
							2305
						]
					},
					"id": 2306,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2279,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "127:24:12"
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
							"file": "../IERC721.sol",
							"id": 2281,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2306,
							"sourceUnit": 2260,
							"src": "153:39:12",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2280,
										"name": "IERC721",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 2259,
										"src": "161:7:12",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 2283,
										"name": "IERC721",
										"nameLocations": [
											"357:7:12"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2259,
										"src": "357:7:12"
									},
									"id": 2284,
									"nodeType": "InheritanceSpecifier",
									"src": "357:7:12"
								}
							],
							"canonicalName": "IERC721Metadata",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 2282,
								"nodeType": "StructuredDocumentation",
								"src": "194:133:12",
								"text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"
							},
							"fullyImplemented": false,
							"id": 2305,
							"linearizedBaseContracts": [
								2305,
								2259,
								3172
							],
							"name": "IERC721Metadata",
							"nameLocation": "338:15:12",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 2285,
										"nodeType": "StructuredDocumentation",
										"src": "371:58:12",
										"text": " @dev Returns the token collection name."
									},
									"functionSelector": "06fdde03",
									"id": 2290,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "name",
									"nameLocation": "443:4:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2286,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "447:2:12"
									},
									"returnParameters": {
										"id": 2289,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2288,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2290,
												"src": "473:13:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2287,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "473:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "472:15:12"
									},
									"scope": 2305,
									"src": "434:54:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2291,
										"nodeType": "StructuredDocumentation",
										"src": "494:60:12",
										"text": " @dev Returns the token collection symbol."
									},
									"functionSelector": "95d89b41",
									"id": 2296,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "symbol",
									"nameLocation": "568:6:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2292,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "574:2:12"
									},
									"returnParameters": {
										"id": 2295,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2294,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2296,
												"src": "600:13:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2293,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "600:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "599:15:12"
									},
									"scope": 2305,
									"src": "559:56:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 2297,
										"nodeType": "StructuredDocumentation",
										"src": "621:90:12",
										"text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."
									},
									"functionSelector": "c87b56dd",
									"id": 2304,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "tokenURI",
									"nameLocation": "725:8:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2300,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2299,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "742:7:12",
												"nodeType": "VariableDeclaration",
												"scope": 2304,
												"src": "734:15:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2298,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "734:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "733:17:12"
									},
									"returnParameters": {
										"id": 2303,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2302,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2304,
												"src": "774:13:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2301,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "774:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "773:15:12"
									},
									"scope": 2305,
									"src": "716:73:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 2306,
							"src": "328:463:12",
							"usedErrors": [],
							"usedEvents": [
								2158,
								2167,
								2176
							]
						}
					],
					"src": "127:665:12"
				},
				"id": 12
			},
			"@openzeppelin/contracts/token/common/ERC2981.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/common/ERC2981.sol",
					"exportedSymbols": {
						"ERC165": [
							3160
						],
						"ERC2981": [
							2559
						],
						"IERC165": [
							3172
						],
						"IERC2981": [
							592
						]
					},
					"id": 2560,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2307,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "108:24:13"
						},
						{
							"absolutePath": "@openzeppelin/contracts/interfaces/IERC2981.sol",
							"file": "../../interfaces/IERC2981.sol",
							"id": 2309,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2560,
							"sourceUnit": 593,
							"src": "134:55:13",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2308,
										"name": "IERC2981",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 592,
										"src": "142:8:13",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
							"file": "../../utils/introspection/ERC165.sol",
							"id": 2312,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2560,
							"sourceUnit": 3161,
							"src": "190:69:13",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2310,
										"name": "IERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3172,
										"src": "198:7:13",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 2311,
										"name": "ERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3160,
										"src": "207:6:13",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": true,
							"baseContracts": [
								{
									"baseName": {
										"id": 2314,
										"name": "IERC2981",
										"nameLocations": [
											"1135:8:13"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 592,
										"src": "1135:8:13"
									},
									"id": 2315,
									"nodeType": "InheritanceSpecifier",
									"src": "1135:8:13"
								},
								{
									"baseName": {
										"id": 2316,
										"name": "ERC165",
										"nameLocations": [
											"1145:6:13"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3160,
										"src": "1145:6:13"
									},
									"id": 2317,
									"nodeType": "InheritanceSpecifier",
									"src": "1145:6:13"
								}
							],
							"canonicalName": "ERC2981",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 2313,
								"nodeType": "StructuredDocumentation",
								"src": "261:844:13",
								"text": " @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n fee is specified in basis points by default.\n IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n voluntarily pay royalties together with sales, but note that this standard is not yet widely supported."
							},
							"fullyImplemented": true,
							"id": 2559,
							"linearizedBaseContracts": [
								2559,
								3160,
								592,
								3172
							],
							"name": "ERC2981",
							"nameLocation": "1124:7:13",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "ERC2981.RoyaltyInfo",
									"id": 2322,
									"members": [
										{
											"constant": false,
											"id": 2319,
											"mutability": "mutable",
											"name": "receiver",
											"nameLocation": "1195:8:13",
											"nodeType": "VariableDeclaration",
											"scope": 2322,
											"src": "1187:16:13",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 2318,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "1187:7:13",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 2321,
											"mutability": "mutable",
											"name": "royaltyFraction",
											"nameLocation": "1220:15:13",
											"nodeType": "VariableDeclaration",
											"scope": 2322,
											"src": "1213:22:13",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint96",
												"typeString": "uint96"
											},
											"typeName": {
												"id": 2320,
												"name": "uint96",
												"nodeType": "ElementaryTypeName",
												"src": "1213:6:13",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "RoyaltyInfo",
									"nameLocation": "1165:11:13",
									"nodeType": "StructDefinition",
									"scope": 2559,
									"src": "1158:84:13",
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 2325,
									"mutability": "mutable",
									"name": "_defaultRoyaltyInfo",
									"nameLocation": "1268:19:13",
									"nodeType": "VariableDeclaration",
									"scope": 2559,
									"src": "1248:39:13",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
										"typeString": "struct ERC2981.RoyaltyInfo"
									},
									"typeName": {
										"id": 2324,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 2323,
											"name": "RoyaltyInfo",
											"nameLocations": [
												"1248:11:13"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 2322,
											"src": "1248:11:13"
										},
										"referencedDeclaration": 2322,
										"src": "1248:11:13",
										"typeDescriptions": {
											"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage_ptr",
											"typeString": "struct ERC2981.RoyaltyInfo"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 2330,
									"mutability": "mutable",
									"name": "_tokenRoyaltyInfo",
									"nameLocation": "1341:17:13",
									"nodeType": "VariableDeclaration",
									"scope": 2559,
									"src": "1293:65:13",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$2322_storage_$",
										"typeString": "mapping(uint256 => struct ERC2981.RoyaltyInfo)"
									},
									"typeName": {
										"id": 2329,
										"keyName": "tokenId",
										"keyNameLocation": "1309:7:13",
										"keyType": {
											"id": 2326,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "1301:7:13",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "1293:39:13",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$2322_storage_$",
											"typeString": "mapping(uint256 => struct ERC2981.RoyaltyInfo)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 2328,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 2327,
												"name": "RoyaltyInfo",
												"nameLocations": [
													"1320:11:13"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 2322,
												"src": "1320:11:13"
											},
											"referencedDeclaration": 2322,
											"src": "1320:11:13",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage_ptr",
												"typeString": "struct ERC2981.RoyaltyInfo"
											}
										}
									},
									"visibility": "private"
								},
								{
									"documentation": {
										"id": 2331,
										"nodeType": "StructuredDocumentation",
										"src": "1365:96:13",
										"text": " @dev The default royalty set is invalid (eg. (numerator / denominator) >= 1)."
									},
									"errorSelector": "6f483d09",
									"id": 2337,
									"name": "ERC2981InvalidDefaultRoyalty",
									"nameLocation": "1472:28:13",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2336,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2333,
												"mutability": "mutable",
												"name": "numerator",
												"nameLocation": "1509:9:13",
												"nodeType": "VariableDeclaration",
												"scope": 2337,
												"src": "1501:17:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2332,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1501:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2335,
												"mutability": "mutable",
												"name": "denominator",
												"nameLocation": "1528:11:13",
												"nodeType": "VariableDeclaration",
												"scope": 2337,
												"src": "1520:19:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2334,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1520:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1500:40:13"
									},
									"src": "1466:75:13"
								},
								{
									"documentation": {
										"id": 2338,
										"nodeType": "StructuredDocumentation",
										"src": "1547:64:13",
										"text": " @dev The default royalty receiver is invalid."
									},
									"errorSelector": "b6d9900a",
									"id": 2342,
									"name": "ERC2981InvalidDefaultRoyaltyReceiver",
									"nameLocation": "1622:36:13",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2341,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2340,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "1667:8:13",
												"nodeType": "VariableDeclaration",
												"scope": 2342,
												"src": "1659:16:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2339,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1659:7:13",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1658:18:13"
									},
									"src": "1616:61:13"
								},
								{
									"documentation": {
										"id": 2343,
										"nodeType": "StructuredDocumentation",
										"src": "1683:114:13",
										"text": " @dev The royalty set for an specific `tokenId` is invalid (eg. (numerator / denominator) >= 1)."
									},
									"errorSelector": "dfd1fc1b",
									"id": 2351,
									"name": "ERC2981InvalidTokenRoyalty",
									"nameLocation": "1808:26:13",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2350,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2345,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "1843:7:13",
												"nodeType": "VariableDeclaration",
												"scope": 2351,
												"src": "1835:15:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2344,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1835:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2347,
												"mutability": "mutable",
												"name": "numerator",
												"nameLocation": "1860:9:13",
												"nodeType": "VariableDeclaration",
												"scope": 2351,
												"src": "1852:17:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2346,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1852:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2349,
												"mutability": "mutable",
												"name": "denominator",
												"nameLocation": "1879:11:13",
												"nodeType": "VariableDeclaration",
												"scope": 2351,
												"src": "1871:19:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2348,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1871:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1834:57:13"
									},
									"src": "1802:90:13"
								},
								{
									"documentation": {
										"id": 2352,
										"nodeType": "StructuredDocumentation",
										"src": "1898:70:13",
										"text": " @dev The royalty receiver for `tokenId` is invalid."
									},
									"errorSelector": "969f0852",
									"id": 2358,
									"name": "ERC2981InvalidTokenRoyaltyReceiver",
									"nameLocation": "1979:34:13",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2357,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2354,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2022:7:13",
												"nodeType": "VariableDeclaration",
												"scope": 2358,
												"src": "2014:15:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2353,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2014:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2356,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "2039:8:13",
												"nodeType": "VariableDeclaration",
												"scope": 2358,
												"src": "2031:16:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2355,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2031:7:13",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2013:35:13"
									},
									"src": "1973:76:13"
								},
								{
									"baseFunctions": [
										3159,
										3171
									],
									"body": {
										"id": 2381,
										"nodeType": "Block",
										"src": "2224:105:13",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 2379,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														},
														"id": 2374,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 2369,
															"name": "interfaceId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2361,
															"src": "2241:11:13",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"expression": {
																"arguments": [
																	{
																		"id": 2371,
																		"name": "IERC2981",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 592,
																		"src": "2261:8:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_contract$_IERC2981_$592_$",
																			"typeString": "type(contract IERC2981)"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_type$_t_contract$_IERC2981_$592_$",
																			"typeString": "type(contract IERC2981)"
																		}
																	],
																	"id": 2370,
																	"name": "type",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967269,
																	"src": "2256:4:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
																		"typeString": "function () pure"
																	}
																},
																"id": 2372,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2256:14:13",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_meta_type_t_contract$_IERC2981_$592",
																	"typeString": "type(contract IERC2981)"
																}
															},
															"id": 2373,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"memberLocation": "2271:11:13",
															"memberName": "interfaceId",
															"nodeType": "MemberAccess",
															"src": "2256:26:13",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"src": "2241:41:13",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"arguments": [
															{
																"id": 2377,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2361,
																"src": "2310:11:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															],
															"expression": {
																"id": 2375,
																"name": "super",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967271,
																"src": "2286:5:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_super$_ERC2981_$2559_$",
																	"typeString": "type(contract super ERC2981)"
																}
															},
															"id": 2376,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2292:17:13",
															"memberName": "supportsInterface",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 3159,
															"src": "2286:23:13",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
																"typeString": "function (bytes4) view returns (bool)"
															}
														},
														"id": 2378,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2286:36:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "2241:81:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 2368,
												"id": 2380,
												"nodeType": "Return",
												"src": "2234:88:13"
											}
										]
									},
									"documentation": {
										"id": 2359,
										"nodeType": "StructuredDocumentation",
										"src": "2055:56:13",
										"text": " @dev See {IERC165-supportsInterface}."
									},
									"functionSelector": "01ffc9a7",
									"id": 2382,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "2125:17:13",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 2365,
										"nodeType": "OverrideSpecifier",
										"overrides": [
											{
												"id": 2363,
												"name": "IERC165",
												"nameLocations": [
													"2192:7:13"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 3172,
												"src": "2192:7:13"
											},
											{
												"id": 2364,
												"name": "ERC165",
												"nameLocations": [
													"2201:6:13"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 3160,
												"src": "2201:6:13"
											}
										],
										"src": "2183:25:13"
									},
									"parameters": {
										"id": 2362,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2361,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "2150:11:13",
												"nodeType": "VariableDeclaration",
												"scope": 2382,
												"src": "2143:18:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 2360,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "2143:6:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2142:20:13"
									},
									"returnParameters": {
										"id": 2368,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2367,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2382,
												"src": "2218:4:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2366,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2218:4:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2217:6:13"
									},
									"scope": 2559,
									"src": "2116:213:13",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										591
									],
									"body": {
										"id": 2430,
										"nodeType": "Block",
										"src": "2483:315:13",
										"statements": [
											{
												"assignments": [
													2396
												],
												"declarations": [
													{
														"constant": false,
														"id": 2396,
														"mutability": "mutable",
														"name": "royalty",
														"nameLocation": "2512:7:13",
														"nodeType": "VariableDeclaration",
														"scope": 2430,
														"src": "2493:26:13",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
															"typeString": "struct ERC2981.RoyaltyInfo"
														},
														"typeName": {
															"id": 2395,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 2394,
																"name": "RoyaltyInfo",
																"nameLocations": [
																	"2493:11:13"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 2322,
																"src": "2493:11:13"
															},
															"referencedDeclaration": 2322,
															"src": "2493:11:13",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage_ptr",
																"typeString": "struct ERC2981.RoyaltyInfo"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2400,
												"initialValue": {
													"baseExpression": {
														"id": 2397,
														"name": "_tokenRoyaltyInfo",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2330,
														"src": "2522:17:13",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$2322_storage_$",
															"typeString": "mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"
														}
													},
													"id": 2399,
													"indexExpression": {
														"id": 2398,
														"name": "tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2385,
														"src": "2540:7:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "2522:26:13",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
														"typeString": "struct ERC2981.RoyaltyInfo storage ref"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2493:55:13"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2407,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 2401,
															"name": "royalty",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2396,
															"src": "2563:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
																"typeString": "struct ERC2981.RoyaltyInfo memory"
															}
														},
														"id": 2402,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "2571:8:13",
														"memberName": "receiver",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 2319,
														"src": "2563:16:13",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2405,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2591:1:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 2404,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "2583:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2403,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "2583:7:13",
																"typeDescriptions": {}
															}
														},
														"id": 2406,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2583:10:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "2563:30:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2413,
												"nodeType": "IfStatement",
												"src": "2559:90:13",
												"trueBody": {
													"id": 2412,
													"nodeType": "Block",
													"src": "2595:54:13",
													"statements": [
														{
															"expression": {
																"id": 2410,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 2408,
																	"name": "royalty",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2396,
																	"src": "2609:7:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
																		"typeString": "struct ERC2981.RoyaltyInfo memory"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"id": 2409,
																	"name": "_defaultRoyaltyInfo",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2325,
																	"src": "2619:19:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
																		"typeString": "struct ERC2981.RoyaltyInfo storage ref"
																	}
																},
																"src": "2609:29:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
																	"typeString": "struct ERC2981.RoyaltyInfo memory"
																}
															},
															"id": 2411,
															"nodeType": "ExpressionStatement",
															"src": "2609:29:13"
														}
													]
												}
											},
											{
												"assignments": [
													2415
												],
												"declarations": [
													{
														"constant": false,
														"id": 2415,
														"mutability": "mutable",
														"name": "royaltyAmount",
														"nameLocation": "2667:13:13",
														"nodeType": "VariableDeclaration",
														"scope": 2430,
														"src": "2659:21:13",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2414,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "2659:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2424,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2423,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 2419,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 2416,
																	"name": "salePrice",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2387,
																	"src": "2684:9:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"expression": {
																		"id": 2417,
																		"name": "royalty",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2396,
																		"src": "2696:7:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
																			"typeString": "struct ERC2981.RoyaltyInfo memory"
																		}
																	},
																	"id": 2418,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "2704:15:13",
																	"memberName": "royaltyFraction",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 2321,
																	"src": "2696:23:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"src": "2684:35:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"id": 2420,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "2683:37:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "/",
													"rightExpression": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 2421,
															"name": "_feeDenominator",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2440,
															"src": "2723:15:13",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint96_$",
																"typeString": "function () pure returns (uint96)"
															}
														},
														"id": 2422,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2723:17:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"src": "2683:57:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2659:81:13"
											},
											{
												"expression": {
													"components": [
														{
															"expression": {
																"id": 2425,
																"name": "royalty",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2396,
																"src": "2759:7:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
																	"typeString": "struct ERC2981.RoyaltyInfo memory"
																}
															},
															"id": 2426,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2767:8:13",
															"memberName": "receiver",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 2319,
															"src": "2759:16:13",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2427,
															"name": "royaltyAmount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2415,
															"src": "2777:13:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"id": 2428,
													"isConstant": false,
													"isInlineArray": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "TupleExpression",
													"src": "2758:33:13",
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
														"typeString": "tuple(address,uint256)"
													}
												},
												"functionReturnParameters": 2393,
												"id": 2429,
												"nodeType": "Return",
												"src": "2751:40:13"
											}
										]
									},
									"documentation": {
										"id": 2383,
										"nodeType": "StructuredDocumentation",
										"src": "2335:39:13",
										"text": " @inheritdoc IERC2981"
									},
									"functionSelector": "2a55205a",
									"id": 2431,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "royaltyInfo",
									"nameLocation": "2388:11:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2388,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2385,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "2408:7:13",
												"nodeType": "VariableDeclaration",
												"scope": 2431,
												"src": "2400:15:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2384,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2400:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2387,
												"mutability": "mutable",
												"name": "salePrice",
												"nameLocation": "2425:9:13",
												"nodeType": "VariableDeclaration",
												"scope": 2431,
												"src": "2417:17:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2386,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2417:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2399:36:13"
									},
									"returnParameters": {
										"id": 2393,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2390,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2431,
												"src": "2465:7:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2389,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2465:7:13",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2392,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2431,
												"src": "2474:7:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2391,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2474:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2464:18:13"
									},
									"scope": 2559,
									"src": "2379:419:13",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 2439,
										"nodeType": "Block",
										"src": "3139:29:13",
										"statements": [
											{
												"expression": {
													"hexValue": "3130303030",
													"id": 2437,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "3156:5:13",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_10000_by_1",
														"typeString": "int_const 10000"
													},
													"value": "10000"
												},
												"functionReturnParameters": 2436,
												"id": 2438,
												"nodeType": "Return",
												"src": "3149:12:13"
											}
										]
									},
									"documentation": {
										"id": 2432,
										"nodeType": "StructuredDocumentation",
										"src": "2804:264:13",
										"text": " @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n override."
									},
									"id": 2440,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_feeDenominator",
									"nameLocation": "3082:15:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2433,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3097:2:13"
									},
									"returnParameters": {
										"id": 2436,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2435,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2440,
												"src": "3131:6:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 2434,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "3131:6:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3130:8:13"
									},
									"scope": 2559,
									"src": "3073:95:13",
									"stateMutability": "pure",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2485,
										"nodeType": "Block",
										"src": "3513:423:13",
										"statements": [
											{
												"assignments": [
													2449
												],
												"declarations": [
													{
														"constant": false,
														"id": 2449,
														"mutability": "mutable",
														"name": "denominator",
														"nameLocation": "3531:11:13",
														"nodeType": "VariableDeclaration",
														"scope": 2485,
														"src": "3523:19:13",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2448,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "3523:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2452,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 2450,
														"name": "_feeDenominator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2440,
														"src": "3545:15:13",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint96_$",
															"typeString": "function () pure returns (uint96)"
														}
													},
													"id": 2451,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3545:17:13",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3523:39:13"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2455,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2453,
														"name": "feeNumerator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2445,
														"src": "3576:12:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"id": 2454,
														"name": "denominator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2449,
														"src": "3591:11:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "3576:26:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2462,
												"nodeType": "IfStatement",
												"src": "3572:173:13",
												"trueBody": {
													"id": 2461,
													"nodeType": "Block",
													"src": "3604:141:13",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 2457,
																		"name": "feeNumerator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2445,
																		"src": "3708:12:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	{
																		"id": 2458,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2449,
																		"src": "3722:11:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 2456,
																	"name": "ERC2981InvalidDefaultRoyalty",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2337,
																	"src": "3679:28:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (uint256,uint256) pure"
																	}
																},
																"id": 2459,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3679:55:13",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2460,
															"nodeType": "RevertStatement",
															"src": "3672:62:13"
														}
													]
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2468,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2463,
														"name": "receiver",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2443,
														"src": "3758:8:13",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2466,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "3778:1:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 2465,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "3770:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2464,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "3770:7:13",
																"typeDescriptions": {}
															}
														},
														"id": 2467,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3770:10:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "3758:22:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2477,
												"nodeType": "IfStatement",
												"src": "3754:108:13",
												"trueBody": {
													"id": 2476,
													"nodeType": "Block",
													"src": "3782:80:13",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 2472,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "3848:1:13",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 2471,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "3840:7:13",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 2470,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "3840:7:13",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 2473,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "3840:10:13",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2469,
																	"name": "ERC2981InvalidDefaultRoyaltyReceiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2342,
																	"src": "3803:36:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 2474,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3803:48:13",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2475,
															"nodeType": "RevertStatement",
															"src": "3796:55:13"
														}
													]
												}
											},
											{
												"expression": {
													"id": 2483,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 2478,
														"name": "_defaultRoyaltyInfo",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2325,
														"src": "3872:19:13",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
															"typeString": "struct ERC2981.RoyaltyInfo storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 2480,
																"name": "receiver",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2443,
																"src": "3906:8:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 2481,
																"name": "feeNumerator",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2445,
																"src": "3916:12:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															],
															"id": 2479,
															"name": "RoyaltyInfo",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2322,
															"src": "3894:11:13",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_struct$_RoyaltyInfo_$2322_storage_ptr_$",
																"typeString": "type(struct ERC2981.RoyaltyInfo storage pointer)"
															}
														},
														"id": 2482,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "structConstructorCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3894:35:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
															"typeString": "struct ERC2981.RoyaltyInfo memory"
														}
													},
													"src": "3872:57:13",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
														"typeString": "struct ERC2981.RoyaltyInfo storage ref"
													}
												},
												"id": 2484,
												"nodeType": "ExpressionStatement",
												"src": "3872:57:13"
											}
										]
									},
									"documentation": {
										"id": 2441,
										"nodeType": "StructuredDocumentation",
										"src": "3174:250:13",
										"text": " @dev Sets the royalty information that all ids in this contract will default to.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."
									},
									"id": 2486,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_setDefaultRoyalty",
									"nameLocation": "3438:18:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2446,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2443,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "3465:8:13",
												"nodeType": "VariableDeclaration",
												"scope": 2486,
												"src": "3457:16:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2442,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3457:7:13",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2445,
												"mutability": "mutable",
												"name": "feeNumerator",
												"nameLocation": "3482:12:13",
												"nodeType": "VariableDeclaration",
												"scope": 2486,
												"src": "3475:19:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 2444,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "3475:6:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3456:39:13"
									},
									"returnParameters": {
										"id": 2447,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3513:0:13"
									},
									"scope": 2559,
									"src": "3429:507:13",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2493,
										"nodeType": "Block",
										"src": "4057:43:13",
										"statements": [
											{
												"expression": {
													"id": 2491,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "delete",
													"prefix": true,
													"src": "4067:26:13",
													"subExpression": {
														"id": 2490,
														"name": "_defaultRoyaltyInfo",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2325,
														"src": "4074:19:13",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
															"typeString": "struct ERC2981.RoyaltyInfo storage ref"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2492,
												"nodeType": "ExpressionStatement",
												"src": "4067:26:13"
											}
										]
									},
									"documentation": {
										"id": 2487,
										"nodeType": "StructuredDocumentation",
										"src": "3942:60:13",
										"text": " @dev Removes default royalty information."
									},
									"id": 2494,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_deleteDefaultRoyalty",
									"nameLocation": "4016:21:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2488,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4037:2:13"
									},
									"returnParameters": {
										"id": 2489,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4057:0:13"
									},
									"scope": 2559,
									"src": "4007:93:13",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2545,
										"nodeType": "Block",
										"src": "4469:444:13",
										"statements": [
											{
												"assignments": [
													2505
												],
												"declarations": [
													{
														"constant": false,
														"id": 2505,
														"mutability": "mutable",
														"name": "denominator",
														"nameLocation": "4487:11:13",
														"nodeType": "VariableDeclaration",
														"scope": 2545,
														"src": "4479:19:13",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2504,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "4479:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2508,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 2506,
														"name": "_feeDenominator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2440,
														"src": "4501:15:13",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint96_$",
															"typeString": "function () pure returns (uint96)"
														}
													},
													"id": 2507,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4501:17:13",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4479:39:13"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2511,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2509,
														"name": "feeNumerator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2501,
														"src": "4532:12:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"id": 2510,
														"name": "denominator",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2505,
														"src": "4547:11:13",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "4532:26:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2519,
												"nodeType": "IfStatement",
												"src": "4528:180:13",
												"trueBody": {
													"id": 2518,
													"nodeType": "Block",
													"src": "4560:148:13",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 2513,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2497,
																		"src": "4662:7:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 2514,
																		"name": "feeNumerator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2501,
																		"src": "4671:12:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	{
																		"id": 2515,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2505,
																		"src": "4685:11:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 2512,
																	"name": "ERC2981InvalidTokenRoyalty",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2351,
																	"src": "4635:26:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (uint256,uint256,uint256) pure"
																	}
																},
																"id": 2516,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4635:62:13",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2517,
															"nodeType": "RevertStatement",
															"src": "4628:69:13"
														}
													]
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2525,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2520,
														"name": "receiver",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2499,
														"src": "4721:8:13",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2523,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4741:1:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																}
															],
															"id": 2522,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "4733:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2521,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "4733:7:13",
																"typeDescriptions": {}
															}
														},
														"id": 2524,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4733:10:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "4721:22:13",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2535,
												"nodeType": "IfStatement",
												"src": "4717:115:13",
												"trueBody": {
													"id": 2534,
													"nodeType": "Block",
													"src": "4745:87:13",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 2527,
																		"name": "tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2497,
																		"src": "4801:7:13",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"arguments": [
																			{
																				"hexValue": "30",
																				"id": 2530,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "4818:1:13",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 2529,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4810:7:13",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 2528,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "4810:7:13",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 2531,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4810:10:13",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2526,
																	"name": "ERC2981InvalidTokenRoyaltyReceiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2358,
																	"src": "4766:34:13",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$_t_address_$returns$__$",
																		"typeString": "function (uint256,address) pure"
																	}
																},
																"id": 2532,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4766:55:13",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2533,
															"nodeType": "RevertStatement",
															"src": "4759:62:13"
														}
													]
												}
											},
											{
												"expression": {
													"id": 2543,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 2536,
															"name": "_tokenRoyaltyInfo",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2330,
															"src": "4842:17:13",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$2322_storage_$",
																"typeString": "mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"
															}
														},
														"id": 2538,
														"indexExpression": {
															"id": 2537,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2497,
															"src": "4860:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "4842:26:13",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
															"typeString": "struct ERC2981.RoyaltyInfo storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 2540,
																"name": "receiver",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2499,
																"src": "4883:8:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 2541,
																"name": "feeNumerator",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2501,
																"src": "4893:12:13",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															],
															"id": 2539,
															"name": "RoyaltyInfo",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2322,
															"src": "4871:11:13",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_struct$_RoyaltyInfo_$2322_storage_ptr_$",
																"typeString": "type(struct ERC2981.RoyaltyInfo storage pointer)"
															}
														},
														"id": 2542,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "structConstructorCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4871:35:13",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_memory_ptr",
															"typeString": "struct ERC2981.RoyaltyInfo memory"
														}
													},
													"src": "4842:64:13",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
														"typeString": "struct ERC2981.RoyaltyInfo storage ref"
													}
												},
												"id": 2544,
												"nodeType": "ExpressionStatement",
												"src": "4842:64:13"
											}
										]
									},
									"documentation": {
										"id": 2495,
										"nodeType": "StructuredDocumentation",
										"src": "4106:259:13",
										"text": " @dev Sets the royalty information for a specific token id, overriding the global default.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."
									},
									"id": 2546,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_setTokenRoyalty",
									"nameLocation": "4379:16:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2502,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2497,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "4404:7:13",
												"nodeType": "VariableDeclaration",
												"scope": 2546,
												"src": "4396:15:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2496,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4396:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2499,
												"mutability": "mutable",
												"name": "receiver",
												"nameLocation": "4421:8:13",
												"nodeType": "VariableDeclaration",
												"scope": 2546,
												"src": "4413:16:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2498,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4413:7:13",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2501,
												"mutability": "mutable",
												"name": "feeNumerator",
												"nameLocation": "4438:12:13",
												"nodeType": "VariableDeclaration",
												"scope": 2546,
												"src": "4431:19:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 2500,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "4431:6:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4395:56:13"
									},
									"returnParameters": {
										"id": 2503,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4469:0:13"
									},
									"scope": 2559,
									"src": "4370:543:13",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2557,
										"nodeType": "Block",
										"src": "5081:50:13",
										"statements": [
											{
												"expression": {
													"id": 2555,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "delete",
													"prefix": true,
													"src": "5091:33:13",
													"subExpression": {
														"baseExpression": {
															"id": 2552,
															"name": "_tokenRoyaltyInfo",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2330,
															"src": "5098:17:13",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$2322_storage_$",
																"typeString": "mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"
															}
														},
														"id": 2554,
														"indexExpression": {
															"id": 2553,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2549,
															"src": "5116:7:13",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "5098:26:13",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_RoyaltyInfo_$2322_storage",
															"typeString": "struct ERC2981.RoyaltyInfo storage ref"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2556,
												"nodeType": "ExpressionStatement",
												"src": "5091:33:13"
											}
										]
									},
									"documentation": {
										"id": 2547,
										"nodeType": "StructuredDocumentation",
										"src": "4919:95:13",
										"text": " @dev Resets royalty information for the token id back to the global default."
									},
									"id": 2558,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_resetTokenRoyalty",
									"nameLocation": "5028:18:13",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2550,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2549,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "5055:7:13",
												"nodeType": "VariableDeclaration",
												"scope": 2558,
												"src": "5047:15:13",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2548,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "5047:7:13",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5046:17:13"
									},
									"returnParameters": {
										"id": 2551,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5081:0:13"
									},
									"scope": 2559,
									"src": "5019:112:13",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "internal"
								}
							],
							"scope": 2560,
							"src": "1106:4027:13",
							"usedErrors": [
								2337,
								2342,
								2351,
								2358
							],
							"usedEvents": []
						}
					],
					"src": "108:5026:13"
				},
				"id": 13
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
					"exportedSymbols": {
						"Address": [
							2812
						]
					},
					"id": 2813,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2561,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "101:24:14"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Address",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 2562,
								"nodeType": "StructuredDocumentation",
								"src": "127:67:14",
								"text": " @dev Collection of functions related to the address type"
							},
							"fullyImplemented": true,
							"id": 2812,
							"linearizedBaseContracts": [
								2812
							],
							"name": "Address",
							"nameLocation": "203:7:14",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 2563,
										"nodeType": "StructuredDocumentation",
										"src": "217:94:14",
										"text": " @dev The ETH balance of the account is not enough to perform the operation."
									},
									"errorSelector": "cd786059",
									"id": 2567,
									"name": "AddressInsufficientBalance",
									"nameLocation": "322:26:14",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2566,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2565,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "357:7:14",
												"nodeType": "VariableDeclaration",
												"scope": 2567,
												"src": "349:15:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2564,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "349:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "348:17:14"
									},
									"src": "316:50:14"
								},
								{
									"documentation": {
										"id": 2568,
										"nodeType": "StructuredDocumentation",
										"src": "372:75:14",
										"text": " @dev There's no code at `target` (it is not a contract)."
									},
									"errorSelector": "9996b315",
									"id": 2572,
									"name": "AddressEmptyCode",
									"nameLocation": "458:16:14",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2571,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2570,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "483:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2572,
												"src": "475:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2569,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "475:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "474:16:14"
									},
									"src": "452:39:14"
								},
								{
									"documentation": {
										"id": 2573,
										"nodeType": "StructuredDocumentation",
										"src": "497:89:14",
										"text": " @dev A call to an address target failed. The target may have reverted."
									},
									"errorSelector": "1425ea42",
									"id": 2575,
									"name": "FailedInnerCall",
									"nameLocation": "597:15:14",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2574,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "612:2:14"
									},
									"src": "591:24:14"
								},
								{
									"body": {
										"id": 2615,
										"nodeType": "Block",
										"src": "1602:260:14",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2589,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"arguments": [
																{
																	"id": 2585,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "1624:4:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_Address_$2812",
																		"typeString": "library Address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_Address_$2812",
																		"typeString": "library Address"
																	}
																],
																"id": 2584,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "1616:7:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 2583,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "1616:7:14",
																	"typeDescriptions": {}
																}
															},
															"id": 2586,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1616:13:14",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 2587,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "1630:7:14",
														"memberName": "balance",
														"nodeType": "MemberAccess",
														"src": "1616:21:14",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 2588,
														"name": "amount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2580,
														"src": "1640:6:14",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "1616:30:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2598,
												"nodeType": "IfStatement",
												"src": "1612:109:14",
												"trueBody": {
													"id": 2597,
													"nodeType": "Block",
													"src": "1648:73:14",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"id": 2593,
																				"name": "this",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967268,
																				"src": "1704:4:14",
																				"typeDescriptions": {
																					"typeIdentifier": "t_contract$_Address_$2812",
																					"typeString": "library Address"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_contract$_Address_$2812",
																					"typeString": "library Address"
																				}
																			],
																			"id": 2592,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "1696:7:14",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 2591,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "1696:7:14",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 2594,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1696:13:14",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2590,
																	"name": "AddressInsufficientBalance",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2567,
																	"src": "1669:26:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 2595,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1669:41:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2596,
															"nodeType": "RevertStatement",
															"src": "1662:48:14"
														}
													]
												}
											},
											{
												"assignments": [
													2600,
													null
												],
												"declarations": [
													{
														"constant": false,
														"id": 2600,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "1737:7:14",
														"nodeType": "VariableDeclaration",
														"scope": 2615,
														"src": "1732:12:14",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 2599,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "1732:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													null
												],
												"id": 2607,
												"initialValue": {
													"arguments": [
														{
															"hexValue": "",
															"id": 2605,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "1780:2:14",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															},
															"value": ""
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																	"typeString": "literal_string \"\""
																}
															],
															"expression": {
																"id": 2601,
																"name": "recipient",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2578,
																"src": "1750:9:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_address_payable",
																	"typeString": "address payable"
																}
															},
															"id": 2602,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "1760:4:14",
															"memberName": "call",
															"nodeType": "MemberAccess",
															"src": "1750:14:14",
															"typeDescriptions": {
																"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
																"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
															}
														},
														"id": 2604,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"id": 2603,
																"name": "amount",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2580,
																"src": "1772:6:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "1750:29:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
															"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
														}
													},
													"id": 2606,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1750:33:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1731:52:14"
											},
											{
												"condition": {
													"id": 2609,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "1797:8:14",
													"subExpression": {
														"id": 2608,
														"name": "success",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2600,
														"src": "1798:7:14",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2614,
												"nodeType": "IfStatement",
												"src": "1793:63:14",
												"trueBody": {
													"id": 2613,
													"nodeType": "Block",
													"src": "1807:49:14",
													"statements": [
														{
															"errorCall": {
																"arguments": [],
																"expression": {
																	"argumentTypes": [],
																	"id": 2610,
																	"name": "FailedInnerCall",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2575,
																	"src": "1828:15:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$__$returns$__$",
																		"typeString": "function () pure"
																	}
																},
																"id": 2611,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1828:17:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2612,
															"nodeType": "RevertStatement",
															"src": "1821:24:14"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 2576,
										"nodeType": "StructuredDocumentation",
										"src": "621:905:14",
										"text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."
									},
									"id": 2616,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sendValue",
									"nameLocation": "1540:9:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2581,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2578,
												"mutability": "mutable",
												"name": "recipient",
												"nameLocation": "1566:9:14",
												"nodeType": "VariableDeclaration",
												"scope": 2616,
												"src": "1550:25:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 2577,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1550:15:14",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2580,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "1585:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2616,
												"src": "1577:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2579,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1577:7:14",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1549:43:14"
									},
									"returnParameters": {
										"id": 2582,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1602:0:14"
									},
									"scope": 2812,
									"src": "1531:331:14",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2632,
										"nodeType": "Block",
										"src": "2794:62:14",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 2627,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2619,
															"src": "2833:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2628,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2621,
															"src": "2841:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "30",
															"id": 2629,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2847:1:14",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															},
															{
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															}
														],
														"id": 2626,
														"name": "functionCallWithValue",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2679,
														"src": "2811:21:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
															"typeString": "function (address,bytes memory,uint256) returns (bytes memory)"
														}
													},
													"id": 2630,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2811:38:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 2625,
												"id": 2631,
												"nodeType": "Return",
												"src": "2804:45:14"
											}
										]
									},
									"documentation": {
										"id": 2617,
										"nodeType": "StructuredDocumentation",
										"src": "1868:832:14",
										"text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."
									},
									"id": 2633,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCall",
									"nameLocation": "2714:12:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2622,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2619,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "2735:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2633,
												"src": "2727:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2618,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2727:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2621,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "2756:4:14",
												"nodeType": "VariableDeclaration",
												"scope": 2633,
												"src": "2743:17:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2620,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "2743:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2726:35:14"
									},
									"returnParameters": {
										"id": 2625,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2624,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2633,
												"src": "2780:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2623,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "2780:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2779:14:14"
									},
									"scope": 2812,
									"src": "2705:151:14",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2678,
										"nodeType": "Block",
										"src": "3293:279:14",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2651,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"arguments": [
																{
																	"id": 2647,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "3315:4:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_Address_$2812",
																		"typeString": "library Address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_Address_$2812",
																		"typeString": "library Address"
																	}
																],
																"id": 2646,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "3307:7:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 2645,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "3307:7:14",
																	"typeDescriptions": {}
																}
															},
															"id": 2648,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3307:13:14",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 2649,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3321:7:14",
														"memberName": "balance",
														"nodeType": "MemberAccess",
														"src": "3307:21:14",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 2650,
														"name": "value",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2640,
														"src": "3331:5:14",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "3307:29:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2660,
												"nodeType": "IfStatement",
												"src": "3303:108:14",
												"trueBody": {
													"id": 2659,
													"nodeType": "Block",
													"src": "3338:73:14",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"id": 2655,
																				"name": "this",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967268,
																				"src": "3394:4:14",
																				"typeDescriptions": {
																					"typeIdentifier": "t_contract$_Address_$2812",
																					"typeString": "library Address"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_contract$_Address_$2812",
																					"typeString": "library Address"
																				}
																			],
																			"id": 2654,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "3386:7:14",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 2653,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "3386:7:14",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 2656,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "3386:13:14",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2652,
																	"name": "AddressInsufficientBalance",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2567,
																	"src": "3359:26:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																		"typeString": "function (address) pure"
																	}
																},
																"id": 2657,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3359:41:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2658,
															"nodeType": "RevertStatement",
															"src": "3352:48:14"
														}
													]
												}
											},
											{
												"assignments": [
													2662,
													2664
												],
												"declarations": [
													{
														"constant": false,
														"id": 2662,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "3426:7:14",
														"nodeType": "VariableDeclaration",
														"scope": 2678,
														"src": "3421:12:14",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 2661,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "3421:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 2664,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "3448:10:14",
														"nodeType": "VariableDeclaration",
														"scope": 2678,
														"src": "3435:23:14",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 2663,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "3435:5:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2671,
												"initialValue": {
													"arguments": [
														{
															"id": 2669,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2638,
															"src": "3488:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															],
															"expression": {
																"id": 2665,
																"name": "target",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2636,
																"src": "3462:6:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"id": 2666,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "3469:4:14",
															"memberName": "call",
															"nodeType": "MemberAccess",
															"src": "3462:11:14",
															"typeDescriptions": {
																"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
																"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
															}
														},
														"id": 2668,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"id": 2667,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2640,
																"src": "3481:5:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "3462:25:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
															"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
														}
													},
													"id": 2670,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3462:31:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3420:73:14"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 2673,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2636,
															"src": "3537:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2674,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2662,
															"src": "3545:7:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 2675,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2664,
															"src": "3554:10:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2672,
														"name": "verifyCallResultFromTarget",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2771,
														"src": "3510:26:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
															"typeString": "function (address,bool,bytes memory) view returns (bytes memory)"
														}
													},
													"id": 2676,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3510:55:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 2644,
												"id": 2677,
												"nodeType": "Return",
												"src": "3503:62:14"
											}
										]
									},
									"documentation": {
										"id": 2634,
										"nodeType": "StructuredDocumentation",
										"src": "2862:313:14",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."
									},
									"id": 2679,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCallWithValue",
									"nameLocation": "3189:21:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2641,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2636,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "3219:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2679,
												"src": "3211:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2635,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3211:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2638,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "3240:4:14",
												"nodeType": "VariableDeclaration",
												"scope": 2679,
												"src": "3227:17:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2637,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3227:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2640,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "3254:5:14",
												"nodeType": "VariableDeclaration",
												"scope": 2679,
												"src": "3246:13:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2639,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3246:7:14",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3210:50:14"
									},
									"returnParameters": {
										"id": 2644,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2643,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2679,
												"src": "3279:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2642,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3279:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3278:14:14"
									},
									"scope": 2812,
									"src": "3180:392:14",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2704,
										"nodeType": "Block",
										"src": "3811:154:14",
										"statements": [
											{
												"assignments": [
													2690,
													2692
												],
												"declarations": [
													{
														"constant": false,
														"id": 2690,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "3827:7:14",
														"nodeType": "VariableDeclaration",
														"scope": 2704,
														"src": "3822:12:14",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 2689,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "3822:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 2692,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "3849:10:14",
														"nodeType": "VariableDeclaration",
														"scope": 2704,
														"src": "3836:23:14",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 2691,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "3836:5:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2697,
												"initialValue": {
													"arguments": [
														{
															"id": 2695,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2684,
															"src": "3881:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"id": 2693,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2682,
															"src": "3863:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 2694,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3870:10:14",
														"memberName": "staticcall",
														"nodeType": "MemberAccess",
														"src": "3863:17:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
															"typeString": "function (bytes memory) view returns (bool,bytes memory)"
														}
													},
													"id": 2696,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3863:23:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3821:65:14"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 2699,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2682,
															"src": "3930:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2700,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2690,
															"src": "3938:7:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 2701,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2692,
															"src": "3947:10:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2698,
														"name": "verifyCallResultFromTarget",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2771,
														"src": "3903:26:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
															"typeString": "function (address,bool,bytes memory) view returns (bytes memory)"
														}
													},
													"id": 2702,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3903:55:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 2688,
												"id": 2703,
												"nodeType": "Return",
												"src": "3896:62:14"
											}
										]
									},
									"documentation": {
										"id": 2680,
										"nodeType": "StructuredDocumentation",
										"src": "3578:128:14",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."
									},
									"id": 2705,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionStaticCall",
									"nameLocation": "3720:18:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2685,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2682,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "3747:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2705,
												"src": "3739:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2681,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3739:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2684,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "3768:4:14",
												"nodeType": "VariableDeclaration",
												"scope": 2705,
												"src": "3755:17:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2683,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3755:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3738:35:14"
									},
									"returnParameters": {
										"id": 2688,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2687,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2705,
												"src": "3797:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2686,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3797:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3796:14:14"
									},
									"scope": 2812,
									"src": "3711:254:14",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2730,
										"nodeType": "Block",
										"src": "4203:156:14",
										"statements": [
											{
												"assignments": [
													2716,
													2718
												],
												"declarations": [
													{
														"constant": false,
														"id": 2716,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "4219:7:14",
														"nodeType": "VariableDeclaration",
														"scope": 2730,
														"src": "4214:12:14",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 2715,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "4214:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 2718,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "4241:10:14",
														"nodeType": "VariableDeclaration",
														"scope": 2730,
														"src": "4228:23:14",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 2717,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "4228:5:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2723,
												"initialValue": {
													"arguments": [
														{
															"id": 2721,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2710,
															"src": "4275:4:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"id": 2719,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2708,
															"src": "4255:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 2720,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "4262:12:14",
														"memberName": "delegatecall",
														"nodeType": "MemberAccess",
														"src": "4255:19:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
															"typeString": "function (bytes memory) returns (bool,bytes memory)"
														}
													},
													"id": 2722,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4255:25:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4213:67:14"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 2725,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2708,
															"src": "4324:6:14",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 2726,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2716,
															"src": "4332:7:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 2727,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2718,
															"src": "4341:10:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2724,
														"name": "verifyCallResultFromTarget",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2771,
														"src": "4297:26:14",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
															"typeString": "function (address,bool,bytes memory) view returns (bytes memory)"
														}
													},
													"id": 2728,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4297:55:14",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 2714,
												"id": 2729,
												"nodeType": "Return",
												"src": "4290:62:14"
											}
										]
									},
									"documentation": {
										"id": 2706,
										"nodeType": "StructuredDocumentation",
										"src": "3971:130:14",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."
									},
									"id": 2731,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionDelegateCall",
									"nameLocation": "4115:20:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2711,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2708,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "4144:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2731,
												"src": "4136:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2707,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4136:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2710,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "4165:4:14",
												"nodeType": "VariableDeclaration",
												"scope": 2731,
												"src": "4152:17:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2709,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4152:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4135:35:14"
									},
									"returnParameters": {
										"id": 2714,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2713,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2731,
												"src": "4189:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2712,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4189:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4188:14:14"
									},
									"scope": 2812,
									"src": "4106:253:14",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2770,
										"nodeType": "Block",
										"src": "4783:424:14",
										"statements": [
											{
												"condition": {
													"id": 2744,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "4797:8:14",
													"subExpression": {
														"id": 2743,
														"name": "success",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2736,
														"src": "4798:7:14",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 2768,
													"nodeType": "Block",
													"src": "4857:344:14",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"id": 2759,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 2753,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"expression": {
																			"id": 2750,
																			"name": "returndata",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2738,
																			"src": "5045:10:14",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes_memory_ptr",
																				"typeString": "bytes memory"
																			}
																		},
																		"id": 2751,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "5056:6:14",
																		"memberName": "length",
																		"nodeType": "MemberAccess",
																		"src": "5045:17:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "==",
																	"rightExpression": {
																		"hexValue": "30",
																		"id": 2752,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "5066:1:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	},
																	"src": "5045:22:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&&",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 2758,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"expression": {
																			"expression": {
																				"id": 2754,
																				"name": "target",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2734,
																				"src": "5071:6:14",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"id": 2755,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberLocation": "5078:4:14",
																			"memberName": "code",
																			"nodeType": "MemberAccess",
																			"src": "5071:11:14",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes_memory_ptr",
																				"typeString": "bytes memory"
																			}
																		},
																		"id": 2756,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "5083:6:14",
																		"memberName": "length",
																		"nodeType": "MemberAccess",
																		"src": "5071:18:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "==",
																	"rightExpression": {
																		"hexValue": "30",
																		"id": 2757,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "5093:1:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	},
																	"src": "5071:23:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"src": "5045:49:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 2765,
															"nodeType": "IfStatement",
															"src": "5041:119:14",
															"trueBody": {
																"id": 2764,
																"nodeType": "Block",
																"src": "5096:64:14",
																"statements": [
																	{
																		"errorCall": {
																			"arguments": [
																				{
																					"id": 2761,
																					"name": "target",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2734,
																					"src": "5138:6:14",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				],
																				"id": 2760,
																				"name": "AddressEmptyCode",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2572,
																				"src": "5121:16:14",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
																					"typeString": "function (address) pure"
																				}
																			},
																			"id": 2762,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "5121:24:14",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 2763,
																		"nodeType": "RevertStatement",
																		"src": "5114:31:14"
																	}
																]
															}
														},
														{
															"expression": {
																"id": 2766,
																"name": "returndata",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2738,
																"src": "5180:10:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"functionReturnParameters": 2742,
															"id": 2767,
															"nodeType": "Return",
															"src": "5173:17:14"
														}
													]
												},
												"id": 2769,
												"nodeType": "IfStatement",
												"src": "4793:408:14",
												"trueBody": {
													"id": 2749,
													"nodeType": "Block",
													"src": "4807:44:14",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2746,
																		"name": "returndata",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2738,
																		"src": "4829:10:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"id": 2745,
																	"name": "_revert",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2811,
																	"src": "4821:7:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
																		"typeString": "function (bytes memory) pure"
																	}
																},
																"id": 2747,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4821:19:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2748,
															"nodeType": "ExpressionStatement",
															"src": "4821:19:14"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 2732,
										"nodeType": "StructuredDocumentation",
										"src": "4365:255:14",
										"text": " @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call."
									},
									"id": 2771,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "verifyCallResultFromTarget",
									"nameLocation": "4634:26:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2739,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2734,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "4678:6:14",
												"nodeType": "VariableDeclaration",
												"scope": 2771,
												"src": "4670:14:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2733,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4670:7:14",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2736,
												"mutability": "mutable",
												"name": "success",
												"nameLocation": "4699:7:14",
												"nodeType": "VariableDeclaration",
												"scope": 2771,
												"src": "4694:12:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2735,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "4694:4:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2738,
												"mutability": "mutable",
												"name": "returndata",
												"nameLocation": "4729:10:14",
												"nodeType": "VariableDeclaration",
												"scope": 2771,
												"src": "4716:23:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2737,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4716:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4660:85:14"
									},
									"returnParameters": {
										"id": 2742,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2741,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2771,
												"src": "4769:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2740,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4769:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4768:14:14"
									},
									"scope": 2812,
									"src": "4625:582:14",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2792,
										"nodeType": "Block",
										"src": "5509:122:14",
										"statements": [
											{
												"condition": {
													"id": 2782,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "5523:8:14",
													"subExpression": {
														"id": 2781,
														"name": "success",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2774,
														"src": "5524:7:14",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 2790,
													"nodeType": "Block",
													"src": "5583:42:14",
													"statements": [
														{
															"expression": {
																"id": 2788,
																"name": "returndata",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2776,
																"src": "5604:10:14",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"functionReturnParameters": 2780,
															"id": 2789,
															"nodeType": "Return",
															"src": "5597:17:14"
														}
													]
												},
												"id": 2791,
												"nodeType": "IfStatement",
												"src": "5519:106:14",
												"trueBody": {
													"id": 2787,
													"nodeType": "Block",
													"src": "5533:44:14",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2784,
																		"name": "returndata",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2776,
																		"src": "5555:10:14",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"id": 2783,
																	"name": "_revert",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2811,
																	"src": "5547:7:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
																		"typeString": "function (bytes memory) pure"
																	}
																},
																"id": 2785,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5547:19:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2786,
															"nodeType": "ExpressionStatement",
															"src": "5547:19:14"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 2772,
										"nodeType": "StructuredDocumentation",
										"src": "5213:189:14",
										"text": " @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error."
									},
									"id": 2793,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "verifyCallResult",
									"nameLocation": "5416:16:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2777,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2774,
												"mutability": "mutable",
												"name": "success",
												"nameLocation": "5438:7:14",
												"nodeType": "VariableDeclaration",
												"scope": 2793,
												"src": "5433:12:14",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2773,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "5433:4:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2776,
												"mutability": "mutable",
												"name": "returndata",
												"nameLocation": "5460:10:14",
												"nodeType": "VariableDeclaration",
												"scope": 2793,
												"src": "5447:23:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2775,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5447:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5432:39:14"
									},
									"returnParameters": {
										"id": 2780,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2779,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2793,
												"src": "5495:12:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2778,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5495:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5494:14:14"
									},
									"scope": 2812,
									"src": "5407:224:14",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2810,
										"nodeType": "Block",
										"src": "5798:461:14",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2802,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 2799,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2796,
															"src": "5874:10:14",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 2800,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "5885:6:14",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "5874:17:14",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "30",
														"id": 2801,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "5894:1:14",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "5874:21:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 2808,
													"nodeType": "Block",
													"src": "6204:49:14",
													"statements": [
														{
															"errorCall": {
																"arguments": [],
																"expression": {
																	"argumentTypes": [],
																	"id": 2805,
																	"name": "FailedInnerCall",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2575,
																	"src": "6225:15:14",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$__$returns$__$",
																		"typeString": "function () pure"
																	}
																},
																"id": 2806,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6225:17:14",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2807,
															"nodeType": "RevertStatement",
															"src": "6218:24:14"
														}
													]
												},
												"id": 2809,
												"nodeType": "IfStatement",
												"src": "5870:383:14",
												"trueBody": {
													"id": 2804,
													"nodeType": "Block",
													"src": "5897:301:14",
													"statements": [
														{
															"AST": {
																"nodeType": "YulBlock",
																"src": "6055:133:14",
																"statements": [
																	{
																		"nodeType": "YulVariableDeclaration",
																		"src": "6073:40:14",
																		"value": {
																			"arguments": [
																				{
																					"name": "returndata",
																					"nodeType": "YulIdentifier",
																					"src": "6102:10:14"
																				}
																			],
																			"functionName": {
																				"name": "mload",
																				"nodeType": "YulIdentifier",
																				"src": "6096:5:14"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "6096:17:14"
																		},
																		"variables": [
																			{
																				"name": "returndata_size",
																				"nodeType": "YulTypedName",
																				"src": "6077:15:14",
																				"type": ""
																			}
																		]
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "6141:2:14",
																							"type": "",
																							"value": "32"
																						},
																						{
																							"name": "returndata",
																							"nodeType": "YulIdentifier",
																							"src": "6145:10:14"
																						}
																					],
																					"functionName": {
																						"name": "add",
																						"nodeType": "YulIdentifier",
																						"src": "6137:3:14"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "6137:19:14"
																				},
																				{
																					"name": "returndata_size",
																					"nodeType": "YulIdentifier",
																					"src": "6158:15:14"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "6130:6:14"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "6130:44:14"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "6130:44:14"
																	}
																]
															},
															"documentation": "@solidity memory-safe-assembly",
															"evmVersion": "shanghai",
															"externalReferences": [
																{
																	"declaration": 2796,
																	"isOffset": false,
																	"isSlot": false,
																	"src": "6102:10:14",
																	"valueSize": 1
																},
																{
																	"declaration": 2796,
																	"isOffset": false,
																	"isSlot": false,
																	"src": "6145:10:14",
																	"valueSize": 1
																}
															],
															"id": 2803,
															"nodeType": "InlineAssembly",
															"src": "6046:142:14"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 2794,
										"nodeType": "StructuredDocumentation",
										"src": "5637:101:14",
										"text": " @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}."
									},
									"id": 2811,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_revert",
									"nameLocation": "5752:7:14",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2797,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2796,
												"mutability": "mutable",
												"name": "returndata",
												"nameLocation": "5773:10:14",
												"nodeType": "VariableDeclaration",
												"scope": 2811,
												"src": "5760:23:14",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2795,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5760:5:14",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5759:25:14"
									},
									"returnParameters": {
										"id": 2798,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5798:0:14"
									},
									"scope": 2812,
									"src": "5743:516:14",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 2813,
							"src": "195:6066:14",
							"usedErrors": [
								2567,
								2572,
								2575
							],
							"usedEvents": []
						}
					],
					"src": "101:6161:14"
				},
				"id": 14
			},
			"@openzeppelin/contracts/utils/Base64.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/Base64.sol",
					"exportedSymbols": {
						"Base64": [
							2859
						]
					},
					"id": 2860,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2814,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "100:24:15"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Base64",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 2815,
								"nodeType": "StructuredDocumentation",
								"src": "126:75:15",
								"text": " @dev Provides a set of functions to operate with Base64 strings."
							},
							"fullyImplemented": true,
							"id": 2859,
							"linearizedBaseContracts": [
								2859
							],
							"name": "Base64",
							"nameLocation": "210:6:15",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"documentation": {
										"id": 2816,
										"nodeType": "StructuredDocumentation",
										"src": "223:54:15",
										"text": " @dev Base64 Encoding/Decoding Table"
									},
									"id": 2819,
									"mutability": "constant",
									"name": "_TABLE",
									"nameLocation": "307:6:15",
									"nodeType": "VariableDeclaration",
									"scope": 2859,
									"src": "282:100:15",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_string_memory_ptr",
										"typeString": "string"
									},
									"typeName": {
										"id": 2817,
										"name": "string",
										"nodeType": "ElementaryTypeName",
										"src": "282:6:15",
										"typeDescriptions": {
											"typeIdentifier": "t_string_storage_ptr",
											"typeString": "string"
										}
									},
									"value": {
										"hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f",
										"id": 2818,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "string",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "316:66:15",
										"typeDescriptions": {
											"typeIdentifier": "t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce",
											"typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\""
										},
										"value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
									},
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2857,
										"nodeType": "Block",
										"src": "549:2953:15",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2830,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 2827,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2822,
															"src": "766:4:15",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 2828,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "771:6:15",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "766:11:15",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 2829,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "781:1:15",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "766:16:15",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"documentation": " Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol",
												"id": 2833,
												"nodeType": "IfStatement",
												"src": "762:31:15",
												"trueBody": {
													"expression": {
														"hexValue": "",
														"id": 2831,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "string",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "791:2:15",
														"typeDescriptions": {
															"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
															"typeString": "literal_string \"\""
														},
														"value": ""
													},
													"functionReturnParameters": 2826,
													"id": 2832,
													"nodeType": "Return",
													"src": "784:9:15"
												}
											},
											{
												"assignments": [
													2835
												],
												"declarations": [
													{
														"constant": false,
														"id": 2835,
														"mutability": "mutable",
														"name": "table",
														"nameLocation": "857:5:15",
														"nodeType": "VariableDeclaration",
														"scope": 2857,
														"src": "843:19:15",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string"
														},
														"typeName": {
															"id": 2834,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "843:6:15",
															"typeDescriptions": {
																"typeIdentifier": "t_string_storage_ptr",
																"typeString": "string"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2837,
												"initialValue": {
													"id": 2836,
													"name": "_TABLE",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 2819,
													"src": "865:6:15",
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "843:28:15"
											},
											{
												"assignments": [
													2839
												],
												"declarations": [
													{
														"constant": false,
														"id": 2839,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "1288:6:15",
														"nodeType": "VariableDeclaration",
														"scope": 2857,
														"src": "1274:20:15",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string"
														},
														"typeName": {
															"id": 2838,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "1274:6:15",
															"typeDescriptions": {
																"typeIdentifier": "t_string_storage_ptr",
																"typeString": "string"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2853,
												"initialValue": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 2851,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"hexValue": "34",
																"id": 2842,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1308:1:15",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_4_by_1",
																	"typeString": "int_const 4"
																},
																"value": "4"
															},
															"nodeType": "BinaryOperation",
															"operator": "*",
															"rightExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 2849,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"components": [
																				{
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 2846,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"expression": {
																							"id": 2843,
																							"name": "data",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 2822,
																							"src": "1314:4:15",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes_memory_ptr",
																								"typeString": "bytes memory"
																							}
																						},
																						"id": 2844,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"memberLocation": "1319:6:15",
																						"memberName": "length",
																						"nodeType": "MemberAccess",
																						"src": "1314:11:15",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"hexValue": "32",
																						"id": 2845,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "1328:1:15",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2_by_1",
																							"typeString": "int_const 2"
																						},
																						"value": "2"
																					},
																					"src": "1314:15:15",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"id": 2847,
																			"isConstant": false,
																			"isInlineArray": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "TupleExpression",
																			"src": "1313:17:15",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "/",
																		"rightExpression": {
																			"hexValue": "33",
																			"id": 2848,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1333:1:15",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_3_by_1",
																				"typeString": "int_const 3"
																			},
																			"value": "3"
																		},
																		"src": "1313:21:15",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"id": 2850,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1312:23:15",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "1308:27:15",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 2841,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "NewExpression",
														"src": "1297:10:15",
														"typeDescriptions": {
															"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
															"typeString": "function (uint256) pure returns (string memory)"
														},
														"typeName": {
															"id": 2840,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "1301:6:15",
															"typeDescriptions": {
																"typeIdentifier": "t_string_storage_ptr",
																"typeString": "string"
															}
														}
													},
													"id": 2852,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1297:39:15",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1274:62:15"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "1399:2073:15",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "1484:29:15",
															"value": {
																"arguments": [
																	{
																		"name": "table",
																		"nodeType": "YulIdentifier",
																		"src": "1504:5:15"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1511:1:15",
																		"type": "",
																		"value": "1"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "1500:3:15"
																},
																"nodeType": "YulFunctionCall",
																"src": "1500:13:15"
															},
															"variables": [
																{
																	"name": "tablePtr",
																	"nodeType": "YulTypedName",
																	"src": "1488:8:15",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulVariableDeclaration",
															"src": "1583:32:15",
															"value": {
																"arguments": [
																	{
																		"name": "result",
																		"nodeType": "YulIdentifier",
																		"src": "1604:6:15"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1612:2:15",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "1600:3:15"
																},
																"nodeType": "YulFunctionCall",
																"src": "1600:15:15"
															},
															"variables": [
																{
																	"name": "resultPtr",
																	"nodeType": "YulTypedName",
																	"src": "1587:9:15",
																	"type": ""
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "1828:1257:15",
																"statements": [
																	{
																		"nodeType": "YulAssignment",
																		"src": "1881:26:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "dataPtr",
																					"nodeType": "YulIdentifier",
																					"src": "1896:7:15"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "1905:1:15",
																					"type": "",
																					"value": "3"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "1892:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1892:15:15"
																		},
																		"variableNames": [
																			{
																				"name": "dataPtr",
																				"nodeType": "YulIdentifier",
																				"src": "1881:7:15"
																			}
																		]
																	},
																	{
																		"nodeType": "YulVariableDeclaration",
																		"src": "1924:27:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "dataPtr",
																					"nodeType": "YulIdentifier",
																					"src": "1943:7:15"
																				}
																			],
																			"functionName": {
																				"name": "mload",
																				"nodeType": "YulIdentifier",
																				"src": "1937:5:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1937:14:15"
																		},
																		"variables": [
																			{
																				"name": "input",
																				"nodeType": "YulTypedName",
																				"src": "1928:5:15",
																				"type": ""
																			}
																		]
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2535:9:15"
																				},
																				{
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "tablePtr",
																									"nodeType": "YulIdentifier",
																									"src": "2556:8:15"
																								},
																								{
																									"arguments": [
																										{
																											"arguments": [
																												{
																													"kind": "number",
																													"nodeType": "YulLiteral",
																													"src": "2574:2:15",
																													"type": "",
																													"value": "18"
																												},
																												{
																													"name": "input",
																													"nodeType": "YulIdentifier",
																													"src": "2578:5:15"
																												}
																											],
																											"functionName": {
																												"name": "shr",
																												"nodeType": "YulIdentifier",
																												"src": "2570:3:15"
																											},
																											"nodeType": "YulFunctionCall",
																											"src": "2570:14:15"
																										},
																										{
																											"kind": "number",
																											"nodeType": "YulLiteral",
																											"src": "2586:4:15",
																											"type": "",
																											"value": "0x3F"
																										}
																									],
																									"functionName": {
																										"name": "and",
																										"nodeType": "YulIdentifier",
																										"src": "2566:3:15"
																									},
																									"nodeType": "YulFunctionCall",
																									"src": "2566:25:15"
																								}
																							],
																							"functionName": {
																								"name": "add",
																								"nodeType": "YulIdentifier",
																								"src": "2552:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "2552:40:15"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "2546:5:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "2546:47:15"
																				}
																			],
																			"functionName": {
																				"name": "mstore8",
																				"nodeType": "YulIdentifier",
																				"src": "2527:7:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2527:67:15"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "2527:67:15"
																	},
																	{
																		"nodeType": "YulAssignment",
																		"src": "2611:30:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2628:9:15"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "2639:1:15",
																					"type": "",
																					"value": "1"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "2624:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2624:17:15"
																		},
																		"variableNames": [
																			{
																				"name": "resultPtr",
																				"nodeType": "YulIdentifier",
																				"src": "2611:9:15"
																			}
																		]
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2678:9:15"
																				},
																				{
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "tablePtr",
																									"nodeType": "YulIdentifier",
																									"src": "2699:8:15"
																								},
																								{
																									"arguments": [
																										{
																											"arguments": [
																												{
																													"kind": "number",
																													"nodeType": "YulLiteral",
																													"src": "2717:2:15",
																													"type": "",
																													"value": "12"
																												},
																												{
																													"name": "input",
																													"nodeType": "YulIdentifier",
																													"src": "2721:5:15"
																												}
																											],
																											"functionName": {
																												"name": "shr",
																												"nodeType": "YulIdentifier",
																												"src": "2713:3:15"
																											},
																											"nodeType": "YulFunctionCall",
																											"src": "2713:14:15"
																										},
																										{
																											"kind": "number",
																											"nodeType": "YulLiteral",
																											"src": "2729:4:15",
																											"type": "",
																											"value": "0x3F"
																										}
																									],
																									"functionName": {
																										"name": "and",
																										"nodeType": "YulIdentifier",
																										"src": "2709:3:15"
																									},
																									"nodeType": "YulFunctionCall",
																									"src": "2709:25:15"
																								}
																							],
																							"functionName": {
																								"name": "add",
																								"nodeType": "YulIdentifier",
																								"src": "2695:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "2695:40:15"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "2689:5:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "2689:47:15"
																				}
																			],
																			"functionName": {
																				"name": "mstore8",
																				"nodeType": "YulIdentifier",
																				"src": "2670:7:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2670:67:15"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "2670:67:15"
																	},
																	{
																		"nodeType": "YulAssignment",
																		"src": "2754:30:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2771:9:15"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "2782:1:15",
																					"type": "",
																					"value": "1"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "2767:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2767:17:15"
																		},
																		"variableNames": [
																			{
																				"name": "resultPtr",
																				"nodeType": "YulIdentifier",
																				"src": "2754:9:15"
																			}
																		]
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2821:9:15"
																				},
																				{
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "tablePtr",
																									"nodeType": "YulIdentifier",
																									"src": "2842:8:15"
																								},
																								{
																									"arguments": [
																										{
																											"arguments": [
																												{
																													"kind": "number",
																													"nodeType": "YulLiteral",
																													"src": "2860:1:15",
																													"type": "",
																													"value": "6"
																												},
																												{
																													"name": "input",
																													"nodeType": "YulIdentifier",
																													"src": "2863:5:15"
																												}
																											],
																											"functionName": {
																												"name": "shr",
																												"nodeType": "YulIdentifier",
																												"src": "2856:3:15"
																											},
																											"nodeType": "YulFunctionCall",
																											"src": "2856:13:15"
																										},
																										{
																											"kind": "number",
																											"nodeType": "YulLiteral",
																											"src": "2871:4:15",
																											"type": "",
																											"value": "0x3F"
																										}
																									],
																									"functionName": {
																										"name": "and",
																										"nodeType": "YulIdentifier",
																										"src": "2852:3:15"
																									},
																									"nodeType": "YulFunctionCall",
																									"src": "2852:24:15"
																								}
																							],
																							"functionName": {
																								"name": "add",
																								"nodeType": "YulIdentifier",
																								"src": "2838:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "2838:39:15"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "2832:5:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "2832:46:15"
																				}
																			],
																			"functionName": {
																				"name": "mstore8",
																				"nodeType": "YulIdentifier",
																				"src": "2813:7:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2813:66:15"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "2813:66:15"
																	},
																	{
																		"nodeType": "YulAssignment",
																		"src": "2896:30:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2913:9:15"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "2924:1:15",
																					"type": "",
																					"value": "1"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "2909:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2909:17:15"
																		},
																		"variableNames": [
																			{
																				"name": "resultPtr",
																				"nodeType": "YulIdentifier",
																				"src": "2896:9:15"
																			}
																		]
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "2963:9:15"
																				},
																				{
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "tablePtr",
																									"nodeType": "YulIdentifier",
																									"src": "2984:8:15"
																								},
																								{
																									"arguments": [
																										{
																											"name": "input",
																											"nodeType": "YulIdentifier",
																											"src": "2998:5:15"
																										},
																										{
																											"kind": "number",
																											"nodeType": "YulLiteral",
																											"src": "3005:4:15",
																											"type": "",
																											"value": "0x3F"
																										}
																									],
																									"functionName": {
																										"name": "and",
																										"nodeType": "YulIdentifier",
																										"src": "2994:3:15"
																									},
																									"nodeType": "YulFunctionCall",
																									"src": "2994:16:15"
																								}
																							],
																							"functionName": {
																								"name": "add",
																								"nodeType": "YulIdentifier",
																								"src": "2980:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "2980:31:15"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "2974:5:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "2974:38:15"
																				}
																			],
																			"functionName": {
																				"name": "mstore8",
																				"nodeType": "YulIdentifier",
																				"src": "2955:7:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "2955:58:15"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "2955:58:15"
																	},
																	{
																		"nodeType": "YulAssignment",
																		"src": "3030:30:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "resultPtr",
																					"nodeType": "YulIdentifier",
																					"src": "3047:9:15"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "3058:1:15",
																					"type": "",
																					"value": "1"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "3043:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "3043:17:15"
																		},
																		"variableNames": [
																			{
																				"name": "resultPtr",
																				"nodeType": "YulIdentifier",
																				"src": "3030:9:15"
																			}
																		]
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "dataPtr",
																		"nodeType": "YulIdentifier",
																		"src": "1794:7:15"
																	},
																	{
																		"name": "endPtr",
																		"nodeType": "YulIdentifier",
																		"src": "1803:6:15"
																	}
																],
																"functionName": {
																	"name": "lt",
																	"nodeType": "YulIdentifier",
																	"src": "1791:2:15"
																},
																"nodeType": "YulFunctionCall",
																"src": "1791:19:15"
															},
															"nodeType": "YulForLoop",
															"post": {
																"nodeType": "YulBlock",
																"src": "1811:16:15",
																"statements": []
															},
															"pre": {
																"nodeType": "YulBlock",
																"src": "1686:104:15",
																"statements": [
																	{
																		"nodeType": "YulVariableDeclaration",
																		"src": "1704:19:15",
																		"value": {
																			"name": "data",
																			"nodeType": "YulIdentifier",
																			"src": "1719:4:15"
																		},
																		"variables": [
																			{
																				"name": "dataPtr",
																				"nodeType": "YulTypedName",
																				"src": "1708:7:15",
																				"type": ""
																			}
																		]
																	},
																	{
																		"nodeType": "YulVariableDeclaration",
																		"src": "1740:36:15",
																		"value": {
																			"arguments": [
																				{
																					"name": "data",
																					"nodeType": "YulIdentifier",
																					"src": "1758:4:15"
																				},
																				{
																					"arguments": [
																						{
																							"name": "data",
																							"nodeType": "YulIdentifier",
																							"src": "1770:4:15"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "1764:5:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "1764:11:15"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "1754:3:15"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1754:22:15"
																		},
																		"variables": [
																			{
																				"name": "endPtr",
																				"nodeType": "YulTypedName",
																				"src": "1744:6:15",
																				"type": ""
																			}
																		]
																	}
																]
															},
															"src": "1682:1403:15"
														},
														{
															"cases": [
																{
																	"body": {
																		"nodeType": "YulBlock",
																		"src": "3265:113:15",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "resultPtr",
																									"nodeType": "YulIdentifier",
																									"src": "3295:9:15"
																								},
																								{
																									"kind": "number",
																									"nodeType": "YulLiteral",
																									"src": "3306:1:15",
																									"type": "",
																									"value": "1"
																								}
																							],
																							"functionName": {
																								"name": "sub",
																								"nodeType": "YulIdentifier",
																								"src": "3291:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "3291:17:15"
																						},
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "3310:4:15",
																							"type": "",
																							"value": "0x3d"
																						}
																					],
																					"functionName": {
																						"name": "mstore8",
																						"nodeType": "YulIdentifier",
																						"src": "3283:7:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "3283:32:15"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "3283:32:15"
																			},
																			{
																				"expression": {
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "resultPtr",
																									"nodeType": "YulIdentifier",
																									"src": "3344:9:15"
																								},
																								{
																									"kind": "number",
																									"nodeType": "YulLiteral",
																									"src": "3355:1:15",
																									"type": "",
																									"value": "2"
																								}
																							],
																							"functionName": {
																								"name": "sub",
																								"nodeType": "YulIdentifier",
																								"src": "3340:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "3340:17:15"
																						},
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "3359:4:15",
																							"type": "",
																							"value": "0x3d"
																						}
																					],
																					"functionName": {
																						"name": "mstore8",
																						"nodeType": "YulIdentifier",
																						"src": "3332:7:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "3332:32:15"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "3332:32:15"
																			}
																		]
																	},
																	"nodeType": "YulCase",
																	"src": "3258:120:15",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3263:1:15",
																		"type": "",
																		"value": "1"
																	}
																},
																{
																	"body": {
																		"nodeType": "YulBlock",
																		"src": "3398:64:15",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "resultPtr",
																									"nodeType": "YulIdentifier",
																									"src": "3428:9:15"
																								},
																								{
																									"kind": "number",
																									"nodeType": "YulLiteral",
																									"src": "3439:1:15",
																									"type": "",
																									"value": "1"
																								}
																							],
																							"functionName": {
																								"name": "sub",
																								"nodeType": "YulIdentifier",
																								"src": "3424:3:15"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "3424:17:15"
																						},
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "3443:4:15",
																							"type": "",
																							"value": "0x3d"
																						}
																					],
																					"functionName": {
																						"name": "mstore8",
																						"nodeType": "YulIdentifier",
																						"src": "3416:7:15"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "3416:32:15"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "3416:32:15"
																			}
																		]
																	},
																	"nodeType": "YulCase",
																	"src": "3391:71:15",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3396:1:15",
																		"type": "",
																		"value": "2"
																	}
																}
															],
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "data",
																				"nodeType": "YulIdentifier",
																				"src": "3236:4:15"
																			}
																		],
																		"functionName": {
																			"name": "mload",
																			"nodeType": "YulIdentifier",
																			"src": "3230:5:15"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3230:11:15"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3243:1:15",
																		"type": "",
																		"value": "3"
																	}
																],
																"functionName": {
																	"name": "mod",
																	"nodeType": "YulIdentifier",
																	"src": "3226:3:15"
																},
																"nodeType": "YulFunctionCall",
																"src": "3226:19:15"
															},
															"nodeType": "YulSwitch",
															"src": "3219:243:15"
														}
													]
												},
												"documentation": "@solidity memory-safe-assembly",
												"evmVersion": "shanghai",
												"externalReferences": [
													{
														"declaration": 2822,
														"isOffset": false,
														"isSlot": false,
														"src": "1719:4:15",
														"valueSize": 1
													},
													{
														"declaration": 2822,
														"isOffset": false,
														"isSlot": false,
														"src": "1758:4:15",
														"valueSize": 1
													},
													{
														"declaration": 2822,
														"isOffset": false,
														"isSlot": false,
														"src": "1770:4:15",
														"valueSize": 1
													},
													{
														"declaration": 2822,
														"isOffset": false,
														"isSlot": false,
														"src": "3236:4:15",
														"valueSize": 1
													},
													{
														"declaration": 2839,
														"isOffset": false,
														"isSlot": false,
														"src": "1604:6:15",
														"valueSize": 1
													},
													{
														"declaration": 2835,
														"isOffset": false,
														"isSlot": false,
														"src": "1504:5:15",
														"valueSize": 1
													}
												],
												"id": 2854,
												"nodeType": "InlineAssembly",
												"src": "1390:2082:15"
											},
											{
												"expression": {
													"id": 2855,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 2839,
													"src": "3489:6:15",
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"functionReturnParameters": 2826,
												"id": 2856,
												"nodeType": "Return",
												"src": "3482:13:15"
											}
										]
									},
									"documentation": {
										"id": 2820,
										"nodeType": "StructuredDocumentation",
										"src": "389:82:15",
										"text": " @dev Converts a `bytes` to its Bytes64 `string` representation."
									},
									"id": 2858,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "encode",
									"nameLocation": "485:6:15",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2823,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2822,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "505:4:15",
												"nodeType": "VariableDeclaration",
												"scope": 2858,
												"src": "492:17:15",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2821,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "492:5:15",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "491:19:15"
									},
									"returnParameters": {
										"id": 2826,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2825,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2858,
												"src": "534:13:15",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2824,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "534:6:15",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "533:15:15"
									},
									"scope": 2859,
									"src": "476:3026:15",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 2860,
							"src": "202:3302:15",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "100:3405:15"
				},
				"id": 15
			},
			"@openzeppelin/contracts/utils/Context.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/Context.sol",
					"exportedSymbols": {
						"Context": [
							2881
						]
					},
					"id": 2882,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2861,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "101:24:16"
						},
						{
							"abstract": true,
							"baseContracts": [],
							"canonicalName": "Context",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 2862,
								"nodeType": "StructuredDocumentation",
								"src": "127:496:16",
								"text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
							},
							"fullyImplemented": true,
							"id": 2881,
							"linearizedBaseContracts": [
								2881
							],
							"name": "Context",
							"nameLocation": "642:7:16",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"body": {
										"id": 2870,
										"nodeType": "Block",
										"src": "718:34:16",
										"statements": [
											{
												"expression": {
													"expression": {
														"id": 2867,
														"name": "msg",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4294967281,
														"src": "735:3:16",
														"typeDescriptions": {
															"typeIdentifier": "t_magic_message",
															"typeString": "msg"
														}
													},
													"id": 2868,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "739:6:16",
													"memberName": "sender",
													"nodeType": "MemberAccess",
													"src": "735:10:16",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 2866,
												"id": 2869,
												"nodeType": "Return",
												"src": "728:17:16"
											}
										]
									},
									"id": 2871,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_msgSender",
									"nameLocation": "665:10:16",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2863,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "675:2:16"
									},
									"returnParameters": {
										"id": 2866,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2865,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2871,
												"src": "709:7:16",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2864,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "709:7:16",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "708:9:16"
									},
									"scope": 2881,
									"src": "656:96:16",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2879,
										"nodeType": "Block",
										"src": "825:32:16",
										"statements": [
											{
												"expression": {
													"expression": {
														"id": 2876,
														"name": "msg",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4294967281,
														"src": "842:3:16",
														"typeDescriptions": {
															"typeIdentifier": "t_magic_message",
															"typeString": "msg"
														}
													},
													"id": 2877,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "846:4:16",
													"memberName": "data",
													"nodeType": "MemberAccess",
													"src": "842:8:16",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_calldata_ptr",
														"typeString": "bytes calldata"
													}
												},
												"functionReturnParameters": 2875,
												"id": 2878,
												"nodeType": "Return",
												"src": "835:15:16"
											}
										]
									},
									"id": 2880,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_msgData",
									"nameLocation": "767:8:16",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2872,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "775:2:16"
									},
									"returnParameters": {
										"id": 2875,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2874,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2880,
												"src": "809:14:16",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2873,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "809:5:16",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "808:16:16"
									},
									"scope": 2881,
									"src": "758:99:16",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "internal"
								}
							],
							"scope": 2882,
							"src": "624:235:16",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "101:759:16"
				},
				"id": 16
			},
			"@openzeppelin/contracts/utils/Strings.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/Strings.sol",
					"exportedSymbols": {
						"Math": [
							4226
						],
						"SignedMath": [
							4331
						],
						"Strings": [
							3136
						]
					},
					"id": 3137,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2883,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "101:24:17"
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/math/Math.sol",
							"file": "./math/Math.sol",
							"id": 2885,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 3137,
							"sourceUnit": 4227,
							"src": "127:37:17",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2884,
										"name": "Math",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 4226,
										"src": "135:4:17",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol",
							"file": "./math/SignedMath.sol",
							"id": 2887,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 3137,
							"sourceUnit": 4332,
							"src": "165:49:17",
							"symbolAliases": [
								{
									"foreign": {
										"id": 2886,
										"name": "SignedMath",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 4331,
										"src": "173:10:17",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Strings",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 2888,
								"nodeType": "StructuredDocumentation",
								"src": "216:34:17",
								"text": " @dev String operations."
							},
							"fullyImplemented": true,
							"id": 3136,
							"linearizedBaseContracts": [
								3136
							],
							"name": "Strings",
							"nameLocation": "259:7:17",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"id": 2891,
									"mutability": "constant",
									"name": "HEX_DIGITS",
									"nameLocation": "298:10:17",
									"nodeType": "VariableDeclaration",
									"scope": 3136,
									"src": "273:56:17",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 2889,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "273:7:17",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30313233343536373839616263646566",
										"id": 2890,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "string",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "311:18:17",
										"typeDescriptions": {
											"typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f",
											"typeString": "literal_string \"0123456789abcdef\""
										},
										"value": "0123456789abcdef"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 2894,
									"mutability": "constant",
									"name": "ADDRESS_LENGTH",
									"nameLocation": "358:14:17",
									"nodeType": "VariableDeclaration",
									"scope": 3136,
									"src": "335:42:17",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint8",
										"typeString": "uint8"
									},
									"typeName": {
										"id": 2892,
										"name": "uint8",
										"nodeType": "ElementaryTypeName",
										"src": "335:5:17",
										"typeDescriptions": {
											"typeIdentifier": "t_uint8",
											"typeString": "uint8"
										}
									},
									"value": {
										"hexValue": "3230",
										"id": 2893,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "375:2:17",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_20_by_1",
											"typeString": "int_const 20"
										},
										"value": "20"
									},
									"visibility": "private"
								},
								{
									"documentation": {
										"id": 2895,
										"nodeType": "StructuredDocumentation",
										"src": "384:81:17",
										"text": " @dev The `value` string doesn't fit in the specified `length`."
									},
									"errorSelector": "e22e27eb",
									"id": 2901,
									"name": "StringsInsufficientHexLength",
									"nameLocation": "476:28:17",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 2900,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2897,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "513:5:17",
												"nodeType": "VariableDeclaration",
												"scope": 2901,
												"src": "505:13:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2896,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "505:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2899,
												"mutability": "mutable",
												"name": "length",
												"nameLocation": "528:6:17",
												"nodeType": "VariableDeclaration",
												"scope": 2901,
												"src": "520:14:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2898,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "520:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "504:31:17"
									},
									"src": "470:66:17"
								},
								{
									"body": {
										"id": 2948,
										"nodeType": "Block",
										"src": "708:627:17",
										"statements": [
											{
												"id": 2947,
												"nodeType": "UncheckedBlock",
												"src": "718:611:17",
												"statements": [
													{
														"assignments": [
															2910
														],
														"declarations": [
															{
																"constant": false,
																"id": 2910,
																"mutability": "mutable",
																"name": "length",
																"nameLocation": "750:6:17",
																"nodeType": "VariableDeclaration",
																"scope": 2947,
																"src": "742:14:17",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 2909,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "742:7:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 2917,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 2916,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 2913,
																		"name": "value",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2904,
																		"src": "770:5:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"expression": {
																		"id": 2911,
																		"name": "Math",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4226,
																		"src": "759:4:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_contract$_Math_$4226_$",
																			"typeString": "type(library Math)"
																		}
																	},
																	"id": 2912,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "764:5:17",
																	"memberName": "log10",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 4046,
																	"src": "759:10:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																		"typeString": "function (uint256) pure returns (uint256)"
																	}
																},
																"id": 2914,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "759:17:17",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"hexValue": "31",
																"id": 2915,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "779:1:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_1_by_1",
																	"typeString": "int_const 1"
																},
																"value": "1"
															},
															"src": "759:21:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "742:38:17"
													},
													{
														"assignments": [
															2919
														],
														"declarations": [
															{
																"constant": false,
																"id": 2919,
																"mutability": "mutable",
																"name": "buffer",
																"nameLocation": "808:6:17",
																"nodeType": "VariableDeclaration",
																"scope": 2947,
																"src": "794:20:17",
																"stateVariable": false,
																"storageLocation": "memory",
																"typeDescriptions": {
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string"
																},
																"typeName": {
																	"id": 2918,
																	"name": "string",
																	"nodeType": "ElementaryTypeName",
																	"src": "794:6:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_storage_ptr",
																		"typeString": "string"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 2924,
														"initialValue": {
															"arguments": [
																{
																	"id": 2922,
																	"name": "length",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2910,
																	"src": "828:6:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 2921,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "NewExpression",
																"src": "817:10:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
																	"typeString": "function (uint256) pure returns (string memory)"
																},
																"typeName": {
																	"id": 2920,
																	"name": "string",
																	"nodeType": "ElementaryTypeName",
																	"src": "821:6:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_storage_ptr",
																		"typeString": "string"
																	}
																}
															},
															"id": 2923,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "817:18:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "794:41:17"
													},
													{
														"assignments": [
															2926
														],
														"declarations": [
															{
																"constant": false,
																"id": 2926,
																"mutability": "mutable",
																"name": "ptr",
																"nameLocation": "857:3:17",
																"nodeType": "VariableDeclaration",
																"scope": 2947,
																"src": "849:11:17",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 2925,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "849:7:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 2927,
														"nodeType": "VariableDeclarationStatement",
														"src": "849:11:17"
													},
													{
														"AST": {
															"nodeType": "YulBlock",
															"src": "930:67:17",
															"statements": [
																{
																	"nodeType": "YulAssignment",
																	"src": "948:35:17",
																	"value": {
																		"arguments": [
																			{
																				"name": "buffer",
																				"nodeType": "YulIdentifier",
																				"src": "959:6:17"
																			},
																			{
																				"arguments": [
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "971:2:17",
																						"type": "",
																						"value": "32"
																					},
																					{
																						"name": "length",
																						"nodeType": "YulIdentifier",
																						"src": "975:6:17"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "967:3:17"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "967:15:17"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "955:3:17"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "955:28:17"
																	},
																	"variableNames": [
																		{
																			"name": "ptr",
																			"nodeType": "YulIdentifier",
																			"src": "948:3:17"
																		}
																	]
																}
															]
														},
														"documentation": "@solidity memory-safe-assembly",
														"evmVersion": "shanghai",
														"externalReferences": [
															{
																"declaration": 2919,
																"isOffset": false,
																"isSlot": false,
																"src": "959:6:17",
																"valueSize": 1
															},
															{
																"declaration": 2910,
																"isOffset": false,
																"isSlot": false,
																"src": "975:6:17",
																"valueSize": 1
															},
															{
																"declaration": 2926,
																"isOffset": false,
																"isSlot": false,
																"src": "948:3:17",
																"valueSize": 1
															}
														],
														"id": 2928,
														"nodeType": "InlineAssembly",
														"src": "921:76:17"
													},
													{
														"body": {
															"id": 2943,
															"nodeType": "Block",
															"src": "1023:269:17",
															"statements": [
																{
																	"expression": {
																		"id": 2931,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "UnaryOperation",
																		"operator": "--",
																		"prefix": false,
																		"src": "1041:5:17",
																		"subExpression": {
																			"id": 2930,
																			"name": "ptr",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2926,
																			"src": "1041:3:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 2932,
																	"nodeType": "ExpressionStatement",
																	"src": "1041:5:17"
																},
																{
																	"AST": {
																		"nodeType": "YulBlock",
																		"src": "1124:86:17",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"name": "ptr",
																							"nodeType": "YulIdentifier",
																							"src": "1154:3:17"
																						},
																						{
																							"arguments": [
																								{
																									"arguments": [
																										{
																											"name": "value",
																											"nodeType": "YulIdentifier",
																											"src": "1168:5:17"
																										},
																										{
																											"kind": "number",
																											"nodeType": "YulLiteral",
																											"src": "1175:2:17",
																											"type": "",
																											"value": "10"
																										}
																									],
																									"functionName": {
																										"name": "mod",
																										"nodeType": "YulIdentifier",
																										"src": "1164:3:17"
																									},
																									"nodeType": "YulFunctionCall",
																									"src": "1164:14:17"
																								},
																								{
																									"name": "HEX_DIGITS",
																									"nodeType": "YulIdentifier",
																									"src": "1180:10:17"
																								}
																							],
																							"functionName": {
																								"name": "byte",
																								"nodeType": "YulIdentifier",
																								"src": "1159:4:17"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "1159:32:17"
																						}
																					],
																					"functionName": {
																						"name": "mstore8",
																						"nodeType": "YulIdentifier",
																						"src": "1146:7:17"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "1146:46:17"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "1146:46:17"
																			}
																		]
																	},
																	"documentation": "@solidity memory-safe-assembly",
																	"evmVersion": "shanghai",
																	"externalReferences": [
																		{
																			"declaration": 2891,
																			"isOffset": false,
																			"isSlot": false,
																			"src": "1180:10:17",
																			"valueSize": 1
																		},
																		{
																			"declaration": 2926,
																			"isOffset": false,
																			"isSlot": false,
																			"src": "1154:3:17",
																			"valueSize": 1
																		},
																		{
																			"declaration": 2904,
																			"isOffset": false,
																			"isSlot": false,
																			"src": "1168:5:17",
																			"valueSize": 1
																		}
																	],
																	"id": 2933,
																	"nodeType": "InlineAssembly",
																	"src": "1115:95:17"
																},
																{
																	"expression": {
																		"id": 2936,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 2934,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2904,
																			"src": "1227:5:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"hexValue": "3130",
																			"id": 2935,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1236:2:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_10_by_1",
																				"typeString": "int_const 10"
																			},
																			"value": "10"
																		},
																		"src": "1227:11:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 2937,
																	"nodeType": "ExpressionStatement",
																	"src": "1227:11:17"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 2940,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 2938,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2904,
																			"src": "1260:5:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 2939,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1269:1:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "1260:10:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"id": 2942,
																	"nodeType": "IfStatement",
																	"src": "1256:21:17",
																	"trueBody": {
																		"id": 2941,
																		"nodeType": "Break",
																		"src": "1272:5:17"
																	}
																}
															]
														},
														"condition": {
															"hexValue": "74727565",
															"id": 2929,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "bool",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "1017:4:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"value": "true"
														},
														"id": 2944,
														"nodeType": "WhileStatement",
														"src": "1010:282:17"
													},
													{
														"expression": {
															"id": 2945,
															"name": "buffer",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2919,
															"src": "1312:6:17",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														"functionReturnParameters": 2908,
														"id": 2946,
														"nodeType": "Return",
														"src": "1305:13:17"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 2902,
										"nodeType": "StructuredDocumentation",
										"src": "542:90:17",
										"text": " @dev Converts a `uint256` to its ASCII `string` decimal representation."
									},
									"id": 2949,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toString",
									"nameLocation": "646:8:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2905,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2904,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "663:5:17",
												"nodeType": "VariableDeclaration",
												"scope": 2949,
												"src": "655:13:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2903,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "655:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "654:15:17"
									},
									"returnParameters": {
										"id": 2908,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2907,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2949,
												"src": "693:13:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2906,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "693:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "692:15:17"
									},
									"scope": 3136,
									"src": "637:698:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2974,
										"nodeType": "Block",
										"src": "1511:92:17",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																},
																"id": 2962,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 2960,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2952,
																	"src": "1542:5:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<",
																"rightExpression": {
																	"hexValue": "30",
																	"id": 2961,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1550:1:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																"src": "1542:9:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseExpression": {
																"hexValue": "",
																"id": 2964,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "string",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1560:2:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																	"typeString": "literal_string \"\""
																},
																"value": ""
															},
															"id": 2965,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "Conditional",
															"src": "1542:20:17",
															"trueExpression": {
																"hexValue": "2d",
																"id": 2963,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "string",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1554:3:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
																	"typeString": "literal_string \"-\""
																},
																"value": "-"
															},
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														{
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 2969,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2952,
																			"src": "1588:5:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		],
																		"expression": {
																			"id": 2967,
																			"name": "SignedMath",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4331,
																			"src": "1573:10:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_SignedMath_$4331_$",
																				"typeString": "type(library SignedMath)"
																			}
																		},
																		"id": 2968,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "1584:3:17",
																		"memberName": "abs",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 4330,
																		"src": "1573:14:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
																			"typeString": "function (int256) pure returns (uint256)"
																		}
																	},
																	"id": 2970,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "1573:21:17",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 2966,
																"name": "toString",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2949,
																"src": "1564:8:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
																	"typeString": "function (uint256) pure returns (string memory)"
																}
															},
															"id": 2971,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1564:31:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															},
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														],
														"expression": {
															"id": 2958,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "1528:6:17",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_string_storage_ptr_$",
																"typeString": "type(string storage pointer)"
															},
															"typeName": {
																"id": 2957,
																"name": "string",
																"nodeType": "ElementaryTypeName",
																"src": "1528:6:17",
																"typeDescriptions": {}
															}
														},
														"id": 2959,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "1535:6:17",
														"memberName": "concat",
														"nodeType": "MemberAccess",
														"src": "1528:13:17",
														"typeDescriptions": {
															"typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$",
															"typeString": "function () pure returns (string memory)"
														}
													},
													"id": 2972,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1528:68:17",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"functionReturnParameters": 2956,
												"id": 2973,
												"nodeType": "Return",
												"src": "1521:75:17"
											}
										]
									},
									"documentation": {
										"id": 2950,
										"nodeType": "StructuredDocumentation",
										"src": "1341:89:17",
										"text": " @dev Converts a `int256` to its ASCII `string` decimal representation."
									},
									"id": 2975,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toStringSigned",
									"nameLocation": "1444:14:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2953,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2952,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1466:5:17",
												"nodeType": "VariableDeclaration",
												"scope": 2975,
												"src": "1459:12:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 2951,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "1459:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1458:14:17"
									},
									"returnParameters": {
										"id": 2956,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2955,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2975,
												"src": "1496:13:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2954,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "1496:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1495:15:17"
									},
									"scope": 3136,
									"src": "1435:168:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2994,
										"nodeType": "Block",
										"src": "1782:100:17",
										"statements": [
											{
												"id": 2993,
												"nodeType": "UncheckedBlock",
												"src": "1792:84:17",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"id": 2984,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2978,
																	"src": "1835:5:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 2990,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"arguments": [
																			{
																				"id": 2987,
																				"name": "value",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2978,
																				"src": "1854:5:17",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"expression": {
																				"id": 2985,
																				"name": "Math",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4226,
																				"src": "1842:4:17",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_contract$_Math_$4226_$",
																					"typeString": "type(library Math)"
																				}
																			},
																			"id": 2986,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberLocation": "1847:6:17",
																			"memberName": "log256",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 4168,
																			"src": "1842:11:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																				"typeString": "function (uint256) pure returns (uint256)"
																			}
																		},
																		"id": 2988,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1842:18:17",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "+",
																	"rightExpression": {
																		"hexValue": "31",
																		"id": 2989,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1863:1:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_1_by_1",
																			"typeString": "int_const 1"
																		},
																		"value": "1"
																	},
																	"src": "1842:22:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 2983,
																"name": "toHexString",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	2995,
																	3078,
																	3098
																],
																"referencedDeclaration": 3078,
																"src": "1823:11:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$",
																	"typeString": "function (uint256,uint256) pure returns (string memory)"
																}
															},
															"id": 2991,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1823:42:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														"functionReturnParameters": 2982,
														"id": 2992,
														"nodeType": "Return",
														"src": "1816:49:17"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 2976,
										"nodeType": "StructuredDocumentation",
										"src": "1609:94:17",
										"text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."
									},
									"id": 2995,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toHexString",
									"nameLocation": "1717:11:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2979,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2978,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1737:5:17",
												"nodeType": "VariableDeclaration",
												"scope": 2995,
												"src": "1729:13:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2977,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1729:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1728:15:17"
									},
									"returnParameters": {
										"id": 2982,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2981,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 2995,
												"src": "1767:13:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2980,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "1767:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1766:15:17"
									},
									"scope": 3136,
									"src": "1708:174:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3077,
										"nodeType": "Block",
										"src": "2095:435:17",
										"statements": [
											{
												"assignments": [
													3006
												],
												"declarations": [
													{
														"constant": false,
														"id": 3006,
														"mutability": "mutable",
														"name": "localValue",
														"nameLocation": "2113:10:17",
														"nodeType": "VariableDeclaration",
														"scope": 3077,
														"src": "2105:18:17",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 3005,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "2105:7:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3008,
												"initialValue": {
													"id": 3007,
													"name": "value",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 2998,
													"src": "2126:5:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2105:26:17"
											},
											{
												"assignments": [
													3010
												],
												"declarations": [
													{
														"constant": false,
														"id": 3010,
														"mutability": "mutable",
														"name": "buffer",
														"nameLocation": "2154:6:17",
														"nodeType": "VariableDeclaration",
														"scope": 3077,
														"src": "2141:19:17",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 3009,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "2141:5:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3019,
												"initialValue": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3017,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3015,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3013,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2173:1:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"id": 3014,
																	"name": "length",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3000,
																	"src": "2177:6:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "2173:10:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"hexValue": "32",
																"id": 3016,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2186:1:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2_by_1",
																	"typeString": "int_const 2"
																},
																"value": "2"
															},
															"src": "2173:14:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 3012,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "NewExpression",
														"src": "2163:9:17",
														"typeDescriptions": {
															"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
															"typeString": "function (uint256) pure returns (bytes memory)"
														},
														"typeName": {
															"id": 3011,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "2167:5:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														}
													},
													"id": 3018,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2163:25:17",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2141:47:17"
											},
											{
												"expression": {
													"id": 3024,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 3020,
															"name": "buffer",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3010,
															"src": "2198:6:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 3022,
														"indexExpression": {
															"hexValue": "30",
															"id": 3021,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2205:1:17",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "2198:9:17",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes1",
															"typeString": "bytes1"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"hexValue": "30",
														"id": 3023,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "string",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "2210:3:17",
														"typeDescriptions": {
															"typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
															"typeString": "literal_string \"0\""
														},
														"value": "0"
													},
													"src": "2198:15:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes1",
														"typeString": "bytes1"
													}
												},
												"id": 3025,
												"nodeType": "ExpressionStatement",
												"src": "2198:15:17"
											},
											{
												"expression": {
													"id": 3030,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 3026,
															"name": "buffer",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3010,
															"src": "2223:6:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 3028,
														"indexExpression": {
															"hexValue": "31",
															"id": 3027,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2230:1:17",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "2223:9:17",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes1",
															"typeString": "bytes1"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"hexValue": "78",
														"id": 3029,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "string",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "2235:3:17",
														"typeDescriptions": {
															"typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83",
															"typeString": "literal_string \"x\""
														},
														"value": "x"
													},
													"src": "2223:15:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes1",
														"typeString": "bytes1"
													}
												},
												"id": 3031,
												"nodeType": "ExpressionStatement",
												"src": "2223:15:17"
											},
											{
												"body": {
													"id": 3060,
													"nodeType": "Block",
													"src": "2293:95:17",
													"statements": [
														{
															"expression": {
																"id": 3054,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"baseExpression": {
																		"id": 3046,
																		"name": "buffer",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3010,
																		"src": "2307:6:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	},
																	"id": 3048,
																	"indexExpression": {
																		"id": 3047,
																		"name": "i",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3033,
																		"src": "2314:1:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"nodeType": "IndexAccess",
																	"src": "2307:9:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes1",
																		"typeString": "bytes1"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"baseExpression": {
																		"id": 3049,
																		"name": "HEX_DIGITS",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2891,
																		"src": "2319:10:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"id": 3053,
																	"indexExpression": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 3052,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 3050,
																			"name": "localValue",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3006,
																			"src": "2330:10:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "&",
																		"rightExpression": {
																			"hexValue": "307866",
																			"id": 3051,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "2343:3:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_15_by_1",
																				"typeString": "int_const 15"
																			},
																			"value": "0xf"
																		},
																		"src": "2330:16:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "2319:28:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes1",
																		"typeString": "bytes1"
																	}
																},
																"src": "2307:40:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes1",
																	"typeString": "bytes1"
																}
															},
															"id": 3055,
															"nodeType": "ExpressionStatement",
															"src": "2307:40:17"
														},
														{
															"expression": {
																"id": 3058,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 3056,
																	"name": "localValue",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3006,
																	"src": "2361:10:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": ">>=",
																"rightHandSide": {
																	"hexValue": "34",
																	"id": 3057,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2376:1:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_4_by_1",
																		"typeString": "int_const 4"
																	},
																	"value": "4"
																},
																"src": "2361:16:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 3059,
															"nodeType": "ExpressionStatement",
															"src": "2361:16:17"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3042,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 3040,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3033,
														"src": "2281:1:17",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "31",
														"id": 3041,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "2285:1:17",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_1_by_1",
															"typeString": "int_const 1"
														},
														"value": "1"
													},
													"src": "2281:5:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 3061,
												"initializationExpression": {
													"assignments": [
														3033
													],
													"declarations": [
														{
															"constant": false,
															"id": 3033,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "2261:1:17",
															"nodeType": "VariableDeclaration",
															"scope": 3061,
															"src": "2253:9:17",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 3032,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "2253:7:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 3039,
													"initialValue": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3038,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3036,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"hexValue": "32",
																"id": 3034,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2265:1:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2_by_1",
																	"typeString": "int_const 2"
																},
																"value": "2"
															},
															"nodeType": "BinaryOperation",
															"operator": "*",
															"rightExpression": {
																"id": 3035,
																"name": "length",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3000,
																"src": "2269:6:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "2265:10:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "+",
														"rightExpression": {
															"hexValue": "31",
															"id": 3037,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2278:1:17",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														"src": "2265:14:17",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "2253:26:17"
												},
												"loopExpression": {
													"expression": {
														"id": 3044,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "--",
														"prefix": true,
														"src": "2288:3:17",
														"subExpression": {
															"id": 3043,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3033,
															"src": "2290:1:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 3045,
													"nodeType": "ExpressionStatement",
													"src": "2288:3:17"
												},
												"nodeType": "ForStatement",
												"src": "2248:140:17"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3064,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 3062,
														"name": "localValue",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3006,
														"src": "2401:10:17",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"hexValue": "30",
														"id": 3063,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "2415:1:17",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "2401:15:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 3071,
												"nodeType": "IfStatement",
												"src": "2397:96:17",
												"trueBody": {
													"id": 3070,
													"nodeType": "Block",
													"src": "2418:75:17",
													"statements": [
														{
															"errorCall": {
																"arguments": [
																	{
																		"id": 3066,
																		"name": "value",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2998,
																		"src": "2468:5:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 3067,
																		"name": "length",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3000,
																		"src": "2475:6:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 3065,
																	"name": "StringsInsufficientHexLength",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2901,
																	"src": "2439:28:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (uint256,uint256) pure"
																	}
																},
																"id": 3068,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2439:43:17",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 3069,
															"nodeType": "RevertStatement",
															"src": "2432:50:17"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 3074,
															"name": "buffer",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3010,
															"src": "2516:6:17",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3073,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "ElementaryTypeNameExpression",
														"src": "2509:6:17",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_string_storage_ptr_$",
															"typeString": "type(string storage pointer)"
														},
														"typeName": {
															"id": 3072,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "2509:6:17",
															"typeDescriptions": {}
														}
													},
													"id": 3075,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2509:14:17",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"functionReturnParameters": 3004,
												"id": 3076,
												"nodeType": "Return",
												"src": "2502:21:17"
											}
										]
									},
									"documentation": {
										"id": 2996,
										"nodeType": "StructuredDocumentation",
										"src": "1888:112:17",
										"text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."
									},
									"id": 3078,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toHexString",
									"nameLocation": "2014:11:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3001,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2998,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2034:5:17",
												"nodeType": "VariableDeclaration",
												"scope": 3078,
												"src": "2026:13:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2997,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2026:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3000,
												"mutability": "mutable",
												"name": "length",
												"nameLocation": "2049:6:17",
												"nodeType": "VariableDeclaration",
												"scope": 3078,
												"src": "2041:14:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2999,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2041:7:17",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2025:31:17"
									},
									"returnParameters": {
										"id": 3004,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3003,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3078,
												"src": "2080:13:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3002,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2080:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2079:15:17"
									},
									"scope": 3136,
									"src": "2005:525:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3097,
										"nodeType": "Block",
										"src": "2762:75:17",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 3091,
																			"name": "addr",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3081,
																			"src": "2807:4:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		],
																		"id": 3090,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2799:7:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint160_$",
																			"typeString": "type(uint160)"
																		},
																		"typeName": {
																			"id": 3089,
																			"name": "uint160",
																			"nodeType": "ElementaryTypeName",
																			"src": "2799:7:17",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 3092,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2799:13:17",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint160",
																		"typeString": "uint160"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint160",
																		"typeString": "uint160"
																	}
																],
																"id": 3088,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "2791:7:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint256_$",
																	"typeString": "type(uint256)"
																},
																"typeName": {
																	"id": 3087,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2791:7:17",
																	"typeDescriptions": {}
																}
															},
															"id": 3093,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2791:22:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 3094,
															"name": "ADDRESS_LENGTH",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2894,
															"src": "2815:14:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint8",
																"typeString": "uint8"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint8",
																"typeString": "uint8"
															}
														],
														"id": 3086,
														"name": "toHexString",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															2995,
															3078,
															3098
														],
														"referencedDeclaration": 3078,
														"src": "2779:11:17",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$",
															"typeString": "function (uint256,uint256) pure returns (string memory)"
														}
													},
													"id": 3095,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2779:51:17",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"functionReturnParameters": 3085,
												"id": 3096,
												"nodeType": "Return",
												"src": "2772:58:17"
											}
										]
									},
									"documentation": {
										"id": 3079,
										"nodeType": "StructuredDocumentation",
										"src": "2536:148:17",
										"text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."
									},
									"id": 3098,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toHexString",
									"nameLocation": "2698:11:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3082,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3081,
												"mutability": "mutable",
												"name": "addr",
												"nameLocation": "2718:4:17",
												"nodeType": "VariableDeclaration",
												"scope": 3098,
												"src": "2710:12:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3080,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2710:7:17",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2709:14:17"
									},
									"returnParameters": {
										"id": 3085,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3084,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3098,
												"src": "2747:13:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3083,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2747:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2746:15:17"
									},
									"scope": 3136,
									"src": "2689:148:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3134,
										"nodeType": "Block",
										"src": "2992:104:17",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 3132,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3118,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"expression": {
																"arguments": [
																	{
																		"id": 3110,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3101,
																		"src": "3015:1:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	],
																	"id": 3109,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "3009:5:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																		"typeString": "type(bytes storage pointer)"
																	},
																	"typeName": {
																		"id": 3108,
																		"name": "bytes",
																		"nodeType": "ElementaryTypeName",
																		"src": "3009:5:17",
																		"typeDescriptions": {}
																	}
																},
																"id": 3111,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3009:8:17",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"id": 3112,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "3018:6:17",
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "3009:15:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"expression": {
																"arguments": [
																	{
																		"id": 3115,
																		"name": "b",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3103,
																		"src": "3034:1:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	],
																	"id": 3114,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "3028:5:17",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																		"typeString": "type(bytes storage pointer)"
																	},
																	"typeName": {
																		"id": 3113,
																		"name": "bytes",
																		"nodeType": "ElementaryTypeName",
																		"src": "3028:5:17",
																		"typeDescriptions": {}
																	}
																},
																"id": 3116,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3028:8:17",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"id": 3117,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "3037:6:17",
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "3028:15:17",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "3009:34:17",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "&&",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"id": 3131,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 3122,
																			"name": "a",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3101,
																			"src": "3063:1:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_string_memory_ptr",
																				"typeString": "string memory"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_string_memory_ptr",
																				"typeString": "string memory"
																			}
																		],
																		"id": 3121,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "3057:5:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																			"typeString": "type(bytes storage pointer)"
																		},
																		"typeName": {
																			"id": 3120,
																			"name": "bytes",
																			"nodeType": "ElementaryTypeName",
																			"src": "3057:5:17",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 3123,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "3057:8:17",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																],
																"id": 3119,
																"name": "keccak256",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967288,
																"src": "3047:9:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
																	"typeString": "function (bytes memory) pure returns (bytes32)"
																}
															},
															"id": 3124,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3047:19:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 3128,
																			"name": "b",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3103,
																			"src": "3086:1:17",
																			"typeDescriptions": {
																				"typeIdentifier": "t_string_memory_ptr",
																				"typeString": "string memory"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_string_memory_ptr",
																				"typeString": "string memory"
																			}
																		],
																		"id": 3127,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "3080:5:17",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																			"typeString": "type(bytes storage pointer)"
																		},
																		"typeName": {
																			"id": 3126,
																			"name": "bytes",
																			"nodeType": "ElementaryTypeName",
																			"src": "3080:5:17",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 3129,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "3080:8:17",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																],
																"id": 3125,
																"name": "keccak256",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967288,
																"src": "3070:9:17",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
																	"typeString": "function (bytes memory) pure returns (bytes32)"
																}
															},
															"id": 3130,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3070:19:17",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"src": "3047:42:17",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "3009:80:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 3107,
												"id": 3133,
												"nodeType": "Return",
												"src": "3002:87:17"
											}
										]
									},
									"documentation": {
										"id": 3099,
										"nodeType": "StructuredDocumentation",
										"src": "2843:66:17",
										"text": " @dev Returns true if the two strings are equal."
									},
									"id": 3135,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "equal",
									"nameLocation": "2923:5:17",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3104,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3101,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "2943:1:17",
												"nodeType": "VariableDeclaration",
												"scope": 3135,
												"src": "2929:15:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3100,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2929:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3103,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "2960:1:17",
												"nodeType": "VariableDeclaration",
												"scope": 3135,
												"src": "2946:15:17",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3102,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "2946:6:17",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2928:34:17"
									},
									"returnParameters": {
										"id": 3107,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3106,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3135,
												"src": "2986:4:17",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3105,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2986:4:17",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2985:6:17"
									},
									"scope": 3136,
									"src": "2914:182:17",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 3137,
							"src": "251:2847:17",
							"usedErrors": [
								2901
							],
							"usedEvents": []
						}
					],
					"src": "101:2998:17"
				},
				"id": 17
			},
			"@openzeppelin/contracts/utils/introspection/ERC165.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol",
					"exportedSymbols": {
						"ERC165": [
							3160
						],
						"IERC165": [
							3172
						]
					},
					"id": 3161,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 3138,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "114:24:18"
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
							"file": "./IERC165.sol",
							"id": 3140,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 3161,
							"sourceUnit": 3173,
							"src": "140:38:18",
							"symbolAliases": [
								{
									"foreign": {
										"id": 3139,
										"name": "IERC165",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"referencedDeclaration": 3172,
										"src": "148:7:18",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": true,
							"baseContracts": [
								{
									"baseName": {
										"id": 3142,
										"name": "IERC165",
										"nameLocations": [
											"687:7:18"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 3172,
										"src": "687:7:18"
									},
									"id": 3143,
									"nodeType": "InheritanceSpecifier",
									"src": "687:7:18"
								}
							],
							"canonicalName": "ERC165",
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 3141,
								"nodeType": "StructuredDocumentation",
								"src": "180:478:18",
								"text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"
							},
							"fullyImplemented": true,
							"id": 3160,
							"linearizedBaseContracts": [
								3160,
								3172
							],
							"name": "ERC165",
							"nameLocation": "677:6:18",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"baseFunctions": [
										3171
									],
									"body": {
										"id": 3158,
										"nodeType": "Block",
										"src": "844:64:18",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													},
													"id": 3156,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 3151,
														"name": "interfaceId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3146,
														"src": "861:11:18",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"expression": {
															"arguments": [
																{
																	"id": 3153,
																	"name": "IERC165",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3172,
																	"src": "881:7:18",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_contract$_IERC165_$3172_$",
																		"typeString": "type(contract IERC165)"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_type$_t_contract$_IERC165_$3172_$",
																		"typeString": "type(contract IERC165)"
																	}
																],
																"id": 3152,
																"name": "type",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967269,
																"src": "876:4:18",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
																	"typeString": "function () pure"
																}
															},
															"id": 3154,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "876:13:18",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$3172",
																"typeString": "type(contract IERC165)"
															}
														},
														"id": 3155,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"memberLocation": "890:11:18",
														"memberName": "interfaceId",
														"nodeType": "MemberAccess",
														"src": "876:25:18",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														}
													},
													"src": "861:40:18",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 3150,
												"id": 3157,
												"nodeType": "Return",
												"src": "854:47:18"
											}
										]
									},
									"documentation": {
										"id": 3144,
										"nodeType": "StructuredDocumentation",
										"src": "701:56:18",
										"text": " @dev See {IERC165-supportsInterface}."
									},
									"functionSelector": "01ffc9a7",
									"id": 3159,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "771:17:18",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3147,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3146,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "796:11:18",
												"nodeType": "VariableDeclaration",
												"scope": 3159,
												"src": "789:18:18",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 3145,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "789:6:18",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "788:20:18"
									},
									"returnParameters": {
										"id": 3150,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3149,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3159,
												"src": "838:4:18",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3148,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "838:4:18",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "837:6:18"
									},
									"scope": 3160,
									"src": "762:146:18",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								}
							],
							"scope": 3161,
							"src": "659:251:18",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "114:797:18"
				},
				"id": 18
			},
			"@openzeppelin/contracts/utils/introspection/IERC165.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol",
					"exportedSymbols": {
						"IERC165": [
							3172
						]
					},
					"id": 3173,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 3162,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "115:24:19"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IERC165",
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 3163,
								"nodeType": "StructuredDocumentation",
								"src": "141:279:19",
								"text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."
							},
							"fullyImplemented": false,
							"id": 3172,
							"linearizedBaseContracts": [
								3172
							],
							"name": "IERC165",
							"nameLocation": "431:7:19",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 3164,
										"nodeType": "StructuredDocumentation",
										"src": "445:340:19",
										"text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."
									},
									"functionSelector": "01ffc9a7",
									"id": 3171,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "799:17:19",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3167,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3166,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "824:11:19",
												"nodeType": "VariableDeclaration",
												"scope": 3171,
												"src": "817:18:19",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 3165,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "817:6:19",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "816:20:19"
									},
									"returnParameters": {
										"id": 3170,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3169,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3171,
												"src": "860:4:19",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3168,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "860:4:19",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "859:6:19"
									},
									"scope": 3172,
									"src": "790:76:19",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 3173,
							"src": "421:447:19",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "115:754:19"
				},
				"id": 19
			},
			"@openzeppelin/contracts/utils/math/Math.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/math/Math.sol",
					"exportedSymbols": {
						"Math": [
							4226
						]
					},
					"id": 4227,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 3174,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "103:24:20"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Math",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 3175,
								"nodeType": "StructuredDocumentation",
								"src": "129:73:20",
								"text": " @dev Standard math utilities missing in the Solidity language."
							},
							"fullyImplemented": true,
							"id": 4226,
							"linearizedBaseContracts": [
								4226
							],
							"name": "Math",
							"nameLocation": "211:4:20",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 3176,
										"nodeType": "StructuredDocumentation",
										"src": "222:50:20",
										"text": " @dev Muldiv operation overflow."
									},
									"errorSelector": "227bc153",
									"id": 3178,
									"name": "MathOverflowedMulDiv",
									"nameLocation": "283:20:20",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 3177,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "303:2:20"
									},
									"src": "277:29:20"
								},
								{
									"canonicalName": "Math.Rounding",
									"id": 3183,
									"members": [
										{
											"id": 3179,
											"name": "Floor",
											"nameLocation": "336:5:20",
											"nodeType": "EnumValue",
											"src": "336:5:20"
										},
										{
											"id": 3180,
											"name": "Ceil",
											"nameLocation": "379:4:20",
											"nodeType": "EnumValue",
											"src": "379:4:20"
										},
										{
											"id": 3181,
											"name": "Trunc",
											"nameLocation": "421:5:20",
											"nodeType": "EnumValue",
											"src": "421:5:20"
										},
										{
											"id": 3182,
											"name": "Expand",
											"nameLocation": "451:6:20",
											"nodeType": "EnumValue",
											"src": "451:6:20"
										}
									],
									"name": "Rounding",
									"nameLocation": "317:8:20",
									"nodeType": "EnumDefinition",
									"src": "312:169:20"
								},
								{
									"body": {
										"id": 3214,
										"nodeType": "Block",
										"src": "661:140:20",
										"statements": [
											{
												"id": 3213,
												"nodeType": "UncheckedBlock",
												"src": "671:124:20",
												"statements": [
													{
														"assignments": [
															3196
														],
														"declarations": [
															{
																"constant": false,
																"id": 3196,
																"mutability": "mutable",
																"name": "c",
																"nameLocation": "703:1:20",
																"nodeType": "VariableDeclaration",
																"scope": 3213,
																"src": "695:9:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3195,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "695:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3200,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3199,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3197,
																"name": "a",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3186,
																"src": "707:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"id": 3198,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3188,
																"src": "711:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "707:5:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "695:17:20"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3203,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3201,
																"name": "c",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3196,
																"src": "730:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"id": 3202,
																"name": "a",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3186,
																"src": "734:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "730:5:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3208,
														"nodeType": "IfStatement",
														"src": "726:28:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "66616c7365",
																		"id": 3204,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "745:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	},
																	{
																		"hexValue": "30",
																		"id": 3205,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "752:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3206,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "744:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3194,
															"id": 3207,
															"nodeType": "Return",
															"src": "737:17:20"
														}
													},
													{
														"expression": {
															"components": [
																{
																	"hexValue": "74727565",
																	"id": 3209,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "776:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																{
																	"id": 3210,
																	"name": "c",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3196,
																	"src": "782:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3211,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "775:9:20",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
																"typeString": "tuple(bool,uint256)"
															}
														},
														"functionReturnParameters": 3194,
														"id": 3212,
														"nodeType": "Return",
														"src": "768:16:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3184,
										"nodeType": "StructuredDocumentation",
										"src": "487:93:20",
										"text": " @dev Returns the addition of two unsigned integers, with an overflow flag."
									},
									"id": 3215,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tryAdd",
									"nameLocation": "594:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3189,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3186,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "609:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3215,
												"src": "601:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3185,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "601:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3188,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "620:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3215,
												"src": "612:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3187,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "612:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "600:22:20"
									},
									"returnParameters": {
										"id": 3194,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3191,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3215,
												"src": "646:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3190,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "646:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3193,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3215,
												"src": "652:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3192,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "652:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "645:15:20"
									},
									"scope": 4226,
									"src": "585:216:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3242,
										"nodeType": "Block",
										"src": "984:113:20",
										"statements": [
											{
												"id": 3241,
												"nodeType": "UncheckedBlock",
												"src": "994:97:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3229,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3227,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3220,
																"src": "1022:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"id": 3228,
																"name": "a",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3218,
																"src": "1026:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "1022:5:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3234,
														"nodeType": "IfStatement",
														"src": "1018:28:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "66616c7365",
																		"id": 3230,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1037:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	},
																	{
																		"hexValue": "30",
																		"id": 3231,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1044:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3232,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1036:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3226,
															"id": 3233,
															"nodeType": "Return",
															"src": "1029:17:20"
														}
													},
													{
														"expression": {
															"components": [
																{
																	"hexValue": "74727565",
																	"id": 3235,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1068:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3238,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3236,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3218,
																		"src": "1074:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 3237,
																		"name": "b",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3220,
																		"src": "1078:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "1074:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3239,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "1067:13:20",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
																"typeString": "tuple(bool,uint256)"
															}
														},
														"functionReturnParameters": 3226,
														"id": 3240,
														"nodeType": "Return",
														"src": "1060:20:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3216,
										"nodeType": "StructuredDocumentation",
										"src": "807:96:20",
										"text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag."
									},
									"id": 3243,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "trySub",
									"nameLocation": "917:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3221,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3218,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "932:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3243,
												"src": "924:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3217,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "924:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3220,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "943:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3243,
												"src": "935:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3219,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "935:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "923:22:20"
									},
									"returnParameters": {
										"id": 3226,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3223,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3243,
												"src": "969:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3222,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "969:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3225,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3243,
												"src": "975:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3224,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "975:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "968:15:20"
									},
									"scope": 4226,
									"src": "908:189:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3284,
										"nodeType": "Block",
										"src": "1283:417:20",
										"statements": [
											{
												"id": 3283,
												"nodeType": "UncheckedBlock",
												"src": "1293:401:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3257,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3255,
																"name": "a",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3246,
																"src": "1551:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 3256,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1556:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "1551:6:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3262,
														"nodeType": "IfStatement",
														"src": "1547:28:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "74727565",
																		"id": 3258,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1567:4:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "true"
																	},
																	{
																		"hexValue": "30",
																		"id": 3259,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1573:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3260,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1566:9:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3254,
															"id": 3261,
															"nodeType": "Return",
															"src": "1559:16:20"
														}
													},
													{
														"assignments": [
															3264
														],
														"declarations": [
															{
																"constant": false,
																"id": 3264,
																"mutability": "mutable",
																"name": "c",
																"nameLocation": "1597:1:20",
																"nodeType": "VariableDeclaration",
																"scope": 3283,
																"src": "1589:9:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3263,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "1589:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3268,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3267,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3265,
																"name": "a",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3246,
																"src": "1601:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "*",
															"rightExpression": {
																"id": 3266,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3248,
																"src": "1605:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "1601:5:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "1589:17:20"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3273,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3271,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3269,
																	"name": "c",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3264,
																	"src": "1624:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "/",
																"rightExpression": {
																	"id": 3270,
																	"name": "a",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3246,
																	"src": "1628:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "1624:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"id": 3272,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3248,
																"src": "1633:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "1624:10:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3278,
														"nodeType": "IfStatement",
														"src": "1620:33:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "66616c7365",
																		"id": 3274,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1644:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	},
																	{
																		"hexValue": "30",
																		"id": 3275,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1651:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3276,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1643:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3254,
															"id": 3277,
															"nodeType": "Return",
															"src": "1636:17:20"
														}
													},
													{
														"expression": {
															"components": [
																{
																	"hexValue": "74727565",
																	"id": 3279,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1675:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																{
																	"id": 3280,
																	"name": "c",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3264,
																	"src": "1681:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3281,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "1674:9:20",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
																"typeString": "tuple(bool,uint256)"
															}
														},
														"functionReturnParameters": 3254,
														"id": 3282,
														"nodeType": "Return",
														"src": "1667:16:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3244,
										"nodeType": "StructuredDocumentation",
										"src": "1103:99:20",
										"text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag."
									},
									"id": 3285,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tryMul",
									"nameLocation": "1216:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3249,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3246,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "1231:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3285,
												"src": "1223:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3245,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1223:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3248,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "1242:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3285,
												"src": "1234:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3247,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1234:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1222:22:20"
									},
									"returnParameters": {
										"id": 3254,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3251,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3285,
												"src": "1268:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3250,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1268:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3253,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3285,
												"src": "1274:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3252,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1274:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1267:15:20"
									},
									"scope": 4226,
									"src": "1207:493:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3312,
										"nodeType": "Block",
										"src": "1887:114:20",
										"statements": [
											{
												"id": 3311,
												"nodeType": "UncheckedBlock",
												"src": "1897:98:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3299,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3297,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3290,
																"src": "1925:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 3298,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1930:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "1925:6:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3304,
														"nodeType": "IfStatement",
														"src": "1921:29:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "66616c7365",
																		"id": 3300,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1941:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	},
																	{
																		"hexValue": "30",
																		"id": 3301,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1948:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3302,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1940:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3296,
															"id": 3303,
															"nodeType": "Return",
															"src": "1933:17:20"
														}
													},
													{
														"expression": {
															"components": [
																{
																	"hexValue": "74727565",
																	"id": 3305,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1972:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3308,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3306,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3288,
																		"src": "1978:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "/",
																	"rightExpression": {
																		"id": 3307,
																		"name": "b",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3290,
																		"src": "1982:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "1978:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3309,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "1971:13:20",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
																"typeString": "tuple(bool,uint256)"
															}
														},
														"functionReturnParameters": 3296,
														"id": 3310,
														"nodeType": "Return",
														"src": "1964:20:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3286,
										"nodeType": "StructuredDocumentation",
										"src": "1706:100:20",
										"text": " @dev Returns the division of two unsigned integers, with a division by zero flag."
									},
									"id": 3313,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tryDiv",
									"nameLocation": "1820:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3291,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3288,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "1835:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "1827:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3287,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1827:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3290,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "1846:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "1838:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3289,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1838:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1826:22:20"
									},
									"returnParameters": {
										"id": 3296,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3293,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "1872:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3292,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1872:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3295,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "1878:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3294,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1878:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1871:15:20"
									},
									"scope": 4226,
									"src": "1811:190:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3340,
										"nodeType": "Block",
										"src": "2198:114:20",
										"statements": [
											{
												"id": 3339,
												"nodeType": "UncheckedBlock",
												"src": "2208:98:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3327,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3325,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3318,
																"src": "2236:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 3326,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2241:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "2236:6:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3332,
														"nodeType": "IfStatement",
														"src": "2232:29:20",
														"trueBody": {
															"expression": {
																"components": [
																	{
																		"hexValue": "66616c7365",
																		"id": 3328,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "bool",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "2252:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		"value": "false"
																	},
																	{
																		"hexValue": "30",
																		"id": 3329,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "2259:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"id": 3330,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "2251:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
																	"typeString": "tuple(bool,int_const 0)"
																}
															},
															"functionReturnParameters": 3324,
															"id": 3331,
															"nodeType": "Return",
															"src": "2244:17:20"
														}
													},
													{
														"expression": {
															"components": [
																{
																	"hexValue": "74727565",
																	"id": 3333,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2283:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3336,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3334,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3316,
																		"src": "2289:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "%",
																	"rightExpression": {
																		"id": 3335,
																		"name": "b",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3318,
																		"src": "2293:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2289:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3337,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "2282:13:20",
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
																"typeString": "tuple(bool,uint256)"
															}
														},
														"functionReturnParameters": 3324,
														"id": 3338,
														"nodeType": "Return",
														"src": "2275:20:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3314,
										"nodeType": "StructuredDocumentation",
										"src": "2007:110:20",
										"text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."
									},
									"id": 3341,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tryMod",
									"nameLocation": "2131:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3319,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3316,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "2146:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3341,
												"src": "2138:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3315,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2138:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3318,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "2157:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3341,
												"src": "2149:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3317,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2149:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2137:22:20"
									},
									"returnParameters": {
										"id": 3324,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3321,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3341,
												"src": "2183:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3320,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2183:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3323,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3341,
												"src": "2189:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3322,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2189:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2182:15:20"
									},
									"scope": 4226,
									"src": "2122:190:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3358,
										"nodeType": "Block",
										"src": "2449:37:20",
										"statements": [
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3353,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 3351,
															"name": "a",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3344,
															"src": "2466:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": ">",
														"rightExpression": {
															"id": 3352,
															"name": "b",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3346,
															"src": "2470:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "2466:5:20",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"id": 3355,
														"name": "b",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3346,
														"src": "2478:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 3356,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "2466:13:20",
													"trueExpression": {
														"id": 3354,
														"name": "a",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3344,
														"src": "2474:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3350,
												"id": 3357,
												"nodeType": "Return",
												"src": "2459:20:20"
											}
										]
									},
									"documentation": {
										"id": 3342,
										"nodeType": "StructuredDocumentation",
										"src": "2318:59:20",
										"text": " @dev Returns the largest of two numbers."
									},
									"id": 3359,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "max",
									"nameLocation": "2391:3:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3347,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3344,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "2403:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3359,
												"src": "2395:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3343,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2395:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3346,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "2414:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3359,
												"src": "2406:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3345,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2406:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2394:22:20"
									},
									"returnParameters": {
										"id": 3350,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3349,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3359,
												"src": "2440:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3348,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2440:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2439:9:20"
									},
									"scope": 4226,
									"src": "2382:104:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3376,
										"nodeType": "Block",
										"src": "2624:37:20",
										"statements": [
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3371,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 3369,
															"name": "a",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3362,
															"src": "2641:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "<",
														"rightExpression": {
															"id": 3370,
															"name": "b",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3364,
															"src": "2645:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "2641:5:20",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"id": 3373,
														"name": "b",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3364,
														"src": "2653:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 3374,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "2641:13:20",
													"trueExpression": {
														"id": 3372,
														"name": "a",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3362,
														"src": "2649:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3368,
												"id": 3375,
												"nodeType": "Return",
												"src": "2634:20:20"
											}
										]
									},
									"documentation": {
										"id": 3360,
										"nodeType": "StructuredDocumentation",
										"src": "2492:60:20",
										"text": " @dev Returns the smallest of two numbers."
									},
									"id": 3377,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "min",
									"nameLocation": "2566:3:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3365,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3362,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "2578:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3377,
												"src": "2570:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3361,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2570:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3364,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "2589:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3377,
												"src": "2581:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3363,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2581:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2569:22:20"
									},
									"returnParameters": {
										"id": 3368,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3367,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3377,
												"src": "2615:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3366,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2615:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2614:9:20"
									},
									"scope": 4226,
									"src": "2557:104:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3399,
										"nodeType": "Block",
										"src": "2845:82:20",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3397,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3389,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3387,
																	"name": "a",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3380,
																	"src": "2900:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"id": 3388,
																	"name": "b",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3382,
																	"src": "2904:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "2900:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"id": 3390,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "2899:7:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3396,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"components": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3393,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3391,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3380,
																		"src": "2910:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "^",
																	"rightExpression": {
																		"id": 3392,
																		"name": "b",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3382,
																		"src": "2914:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2910:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 3394,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "2909:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "/",
														"rightExpression": {
															"hexValue": "32",
															"id": 3395,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2919:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														},
														"src": "2909:11:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "2899:21:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3386,
												"id": 3398,
												"nodeType": "Return",
												"src": "2892:28:20"
											}
										]
									},
									"documentation": {
										"id": 3378,
										"nodeType": "StructuredDocumentation",
										"src": "2667:102:20",
										"text": " @dev Returns the average of two numbers. The result is rounded towards\n zero."
									},
									"id": 3400,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "average",
									"nameLocation": "2783:7:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3383,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3380,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "2799:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3400,
												"src": "2791:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3379,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2791:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3382,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "2810:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3400,
												"src": "2802:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3381,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2802:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2790:22:20"
									},
									"returnParameters": {
										"id": 3386,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3385,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3400,
												"src": "2836:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3384,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2836:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2835:9:20"
									},
									"scope": 4226,
									"src": "2774:153:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3433,
										"nodeType": "Block",
										"src": "3219:260:20",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3412,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 3410,
														"name": "b",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3405,
														"src": "3233:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 3411,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "3238:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "3233:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 3418,
												"nodeType": "IfStatement",
												"src": "3229:127:20",
												"trueBody": {
													"id": 3417,
													"nodeType": "Block",
													"src": "3241:115:20",
													"statements": [
														{
															"expression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3415,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3413,
																	"name": "a",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3403,
																	"src": "3340:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "/",
																"rightExpression": {
																	"id": 3414,
																	"name": "b",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3405,
																	"src": "3344:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "3340:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"functionReturnParameters": 3409,
															"id": 3416,
															"nodeType": "Return",
															"src": "3333:12:20"
														}
													]
												}
											},
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3421,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 3419,
															"name": "a",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3403,
															"src": "3444:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"hexValue": "30",
															"id": 3420,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3449:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"src": "3444:6:20",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3430,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3428,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 3425,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 3423,
																			"name": "a",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3403,
																			"src": "3458:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"hexValue": "31",
																			"id": 3424,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "3462:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "3458:5:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"id": 3426,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "3457:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "/",
															"rightExpression": {
																"id": 3427,
																"name": "b",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3405,
																"src": "3467:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "3457:11:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "+",
														"rightExpression": {
															"hexValue": "31",
															"id": 3429,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3471:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														"src": "3457:15:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 3431,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "3444:28:20",
													"trueExpression": {
														"hexValue": "30",
														"id": 3422,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "3453:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3409,
												"id": 3432,
												"nodeType": "Return",
												"src": "3437:35:20"
											}
										]
									},
									"documentation": {
										"id": 3401,
										"nodeType": "StructuredDocumentation",
										"src": "2933:210:20",
										"text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."
									},
									"id": 3434,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "ceilDiv",
									"nameLocation": "3157:7:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3406,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3403,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "3173:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3434,
												"src": "3165:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3402,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3165:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3405,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "3184:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3434,
												"src": "3176:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3404,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3176:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3164:22:20"
									},
									"returnParameters": {
										"id": 3409,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3408,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3434,
												"src": "3210:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3407,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3210:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3209:9:20"
									},
									"scope": 4226,
									"src": "3148:331:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3559,
										"nodeType": "Block",
										"src": "3901:4018:20",
										"statements": [
											{
												"id": 3558,
												"nodeType": "UncheckedBlock",
												"src": "3911:4002:20",
												"statements": [
													{
														"assignments": [
															3447
														],
														"declarations": [
															{
																"constant": false,
																"id": 3447,
																"mutability": "mutable",
																"name": "prod0",
																"nameLocation": "4240:5:20",
																"nodeType": "VariableDeclaration",
																"scope": 3558,
																"src": "4232:13:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3446,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "4232:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3451,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3450,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3448,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3437,
																"src": "4248:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "*",
															"rightExpression": {
																"id": 3449,
																"name": "y",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3439,
																"src": "4252:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "4248:5:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "4232:21:20"
													},
													{
														"assignments": [
															3453
														],
														"declarations": [
															{
																"constant": false,
																"id": 3453,
																"mutability": "mutable",
																"name": "prod1",
																"nameLocation": "4320:5:20",
																"nodeType": "VariableDeclaration",
																"scope": 3558,
																"src": "4312:13:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3452,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "4312:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3454,
														"nodeType": "VariableDeclarationStatement",
														"src": "4312:13:20"
													},
													{
														"AST": {
															"nodeType": "YulBlock",
															"src": "4392:122:20",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4410:30:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "x",
																				"nodeType": "YulIdentifier",
																				"src": "4427:1:20"
																			},
																			{
																				"name": "y",
																				"nodeType": "YulIdentifier",
																				"src": "4430:1:20"
																			},
																			{
																				"arguments": [
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "4437:1:20",
																						"type": "",
																						"value": "0"
																					}
																				],
																				"functionName": {
																					"name": "not",
																					"nodeType": "YulIdentifier",
																					"src": "4433:3:20"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4433:6:20"
																			}
																		],
																		"functionName": {
																			"name": "mulmod",
																			"nodeType": "YulIdentifier",
																			"src": "4420:6:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4420:20:20"
																	},
																	"variables": [
																		{
																			"name": "mm",
																			"nodeType": "YulTypedName",
																			"src": "4414:2:20",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4457:43:20",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "mm",
																						"nodeType": "YulIdentifier",
																						"src": "4474:2:20"
																					},
																					{
																						"name": "prod0",
																						"nodeType": "YulIdentifier",
																						"src": "4478:5:20"
																					}
																				],
																				"functionName": {
																					"name": "sub",
																					"nodeType": "YulIdentifier",
																					"src": "4470:3:20"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4470:14:20"
																			},
																			{
																				"arguments": [
																					{
																						"name": "mm",
																						"nodeType": "YulIdentifier",
																						"src": "4489:2:20"
																					},
																					{
																						"name": "prod0",
																						"nodeType": "YulIdentifier",
																						"src": "4493:5:20"
																					}
																				],
																				"functionName": {
																					"name": "lt",
																					"nodeType": "YulIdentifier",
																					"src": "4486:2:20"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4486:13:20"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "4466:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4466:34:20"
																	},
																	"variableNames": [
																		{
																			"name": "prod1",
																			"nodeType": "YulIdentifier",
																			"src": "4457:5:20"
																		}
																	]
																}
															]
														},
														"evmVersion": "shanghai",
														"externalReferences": [
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "4478:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "4493:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3453,
																"isOffset": false,
																"isSlot": false,
																"src": "4457:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3437,
																"isOffset": false,
																"isSlot": false,
																"src": "4427:1:20",
																"valueSize": 1
															},
															{
																"declaration": 3439,
																"isOffset": false,
																"isSlot": false,
																"src": "4430:1:20",
																"valueSize": 1
															}
														],
														"id": 3455,
														"nodeType": "InlineAssembly",
														"src": "4383:131:20"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3458,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3456,
																"name": "prod1",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3453,
																"src": "4595:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 3457,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4604:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "4595:10:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3464,
														"nodeType": "IfStatement",
														"src": "4591:368:20",
														"trueBody": {
															"id": 3463,
															"nodeType": "Block",
															"src": "4607:352:20",
															"statements": [
																{
																	"expression": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 3461,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 3459,
																			"name": "prod0",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3447,
																			"src": "4925:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "/",
																		"rightExpression": {
																			"id": 3460,
																			"name": "denominator",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3441,
																			"src": "4933:11:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "4925:19:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"functionReturnParameters": 3445,
																	"id": 3462,
																	"nodeType": "Return",
																	"src": "4918:26:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3467,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3465,
																"name": "denominator",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3441,
																"src": "5065:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<=",
															"rightExpression": {
																"id": 3466,
																"name": "prod1",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3453,
																"src": "5080:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "5065:20:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3472,
														"nodeType": "IfStatement",
														"src": "5061:88:20",
														"trueBody": {
															"id": 3471,
															"nodeType": "Block",
															"src": "5087:62:20",
															"statements": [
																{
																	"errorCall": {
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"id": 3468,
																			"name": "MathOverflowedMulDiv",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3178,
																			"src": "5112:20:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_error_pure$__$returns$__$",
																				"typeString": "function () pure"
																			}
																		},
																		"id": 3469,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "5112:22:20",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 3470,
																	"nodeType": "RevertStatement",
																	"src": "5105:29:20"
																}
															]
														}
													},
													{
														"assignments": [
															3474
														],
														"declarations": [
															{
																"constant": false,
																"id": 3474,
																"mutability": "mutable",
																"name": "remainder",
																"nameLocation": "5412:9:20",
																"nodeType": "VariableDeclaration",
																"scope": 3558,
																"src": "5404:17:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3473,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "5404:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3475,
														"nodeType": "VariableDeclarationStatement",
														"src": "5404:17:20"
													},
													{
														"AST": {
															"nodeType": "YulBlock",
															"src": "5444:291:20",
															"statements": [
																{
																	"nodeType": "YulAssignment",
																	"src": "5513:38:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "x",
																				"nodeType": "YulIdentifier",
																				"src": "5533:1:20"
																			},
																			{
																				"name": "y",
																				"nodeType": "YulIdentifier",
																				"src": "5536:1:20"
																			},
																			{
																				"name": "denominator",
																				"nodeType": "YulIdentifier",
																				"src": "5539:11:20"
																			}
																		],
																		"functionName": {
																			"name": "mulmod",
																			"nodeType": "YulIdentifier",
																			"src": "5526:6:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5526:25:20"
																	},
																	"variableNames": [
																		{
																			"name": "remainder",
																			"nodeType": "YulIdentifier",
																			"src": "5513:9:20"
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5633:41:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "prod1",
																				"nodeType": "YulIdentifier",
																				"src": "5646:5:20"
																			},
																			{
																				"arguments": [
																					{
																						"name": "remainder",
																						"nodeType": "YulIdentifier",
																						"src": "5656:9:20"
																					},
																					{
																						"name": "prod0",
																						"nodeType": "YulIdentifier",
																						"src": "5667:5:20"
																					}
																				],
																				"functionName": {
																					"name": "gt",
																					"nodeType": "YulIdentifier",
																					"src": "5653:2:20"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5653:20:20"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "5642:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5642:32:20"
																	},
																	"variableNames": [
																		{
																			"name": "prod1",
																			"nodeType": "YulIdentifier",
																			"src": "5633:5:20"
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5691:30:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "prod0",
																				"nodeType": "YulIdentifier",
																				"src": "5704:5:20"
																			},
																			{
																				"name": "remainder",
																				"nodeType": "YulIdentifier",
																				"src": "5711:9:20"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "5700:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5700:21:20"
																	},
																	"variableNames": [
																		{
																			"name": "prod0",
																			"nodeType": "YulIdentifier",
																			"src": "5691:5:20"
																		}
																	]
																}
															]
														},
														"evmVersion": "shanghai",
														"externalReferences": [
															{
																"declaration": 3441,
																"isOffset": false,
																"isSlot": false,
																"src": "5539:11:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "5667:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "5691:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "5704:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3453,
																"isOffset": false,
																"isSlot": false,
																"src": "5633:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3453,
																"isOffset": false,
																"isSlot": false,
																"src": "5646:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3474,
																"isOffset": false,
																"isSlot": false,
																"src": "5513:9:20",
																"valueSize": 1
															},
															{
																"declaration": 3474,
																"isOffset": false,
																"isSlot": false,
																"src": "5656:9:20",
																"valueSize": 1
															},
															{
																"declaration": 3474,
																"isOffset": false,
																"isSlot": false,
																"src": "5711:9:20",
																"valueSize": 1
															},
															{
																"declaration": 3437,
																"isOffset": false,
																"isSlot": false,
																"src": "5533:1:20",
																"valueSize": 1
															},
															{
																"declaration": 3439,
																"isOffset": false,
																"isSlot": false,
																"src": "5536:1:20",
																"valueSize": 1
															}
														],
														"id": 3476,
														"nodeType": "InlineAssembly",
														"src": "5435:300:20"
													},
													{
														"assignments": [
															3478
														],
														"declarations": [
															{
																"constant": false,
																"id": 3478,
																"mutability": "mutable",
																"name": "twos",
																"nameLocation": "5947:4:20",
																"nodeType": "VariableDeclaration",
																"scope": 3558,
																"src": "5939:12:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3477,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "5939:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3485,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3484,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3479,
																"name": "denominator",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3441,
																"src": "5954:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 3482,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"hexValue": "30",
																			"id": 3480,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "5969:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"id": 3481,
																			"name": "denominator",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3441,
																			"src": "5973:11:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "5969:15:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"id": 3483,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "5968:17:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "5954:31:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "5939:46:20"
													},
													{
														"AST": {
															"nodeType": "YulBlock",
															"src": "6008:362:20",
															"statements": [
																{
																	"nodeType": "YulAssignment",
																	"src": "6073:37:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "denominator",
																				"nodeType": "YulIdentifier",
																				"src": "6092:11:20"
																			},
																			{
																				"name": "twos",
																				"nodeType": "YulIdentifier",
																				"src": "6105:4:20"
																			}
																		],
																		"functionName": {
																			"name": "div",
																			"nodeType": "YulIdentifier",
																			"src": "6088:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6088:22:20"
																	},
																	"variableNames": [
																		{
																			"name": "denominator",
																			"nodeType": "YulIdentifier",
																			"src": "6073:11:20"
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6177:25:20",
																	"value": {
																		"arguments": [
																			{
																				"name": "prod0",
																				"nodeType": "YulIdentifier",
																				"src": "6190:5:20"
																			},
																			{
																				"name": "twos",
																				"nodeType": "YulIdentifier",
																				"src": "6197:4:20"
																			}
																		],
																		"functionName": {
																			"name": "div",
																			"nodeType": "YulIdentifier",
																			"src": "6186:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6186:16:20"
																	},
																	"variableNames": [
																		{
																			"name": "prod0",
																			"nodeType": "YulIdentifier",
																			"src": "6177:5:20"
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6317:39:20",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"kind": "number",
																								"nodeType": "YulLiteral",
																								"src": "6337:1:20",
																								"type": "",
																								"value": "0"
																							},
																							{
																								"name": "twos",
																								"nodeType": "YulIdentifier",
																								"src": "6340:4:20"
																							}
																						],
																						"functionName": {
																							"name": "sub",
																							"nodeType": "YulIdentifier",
																							"src": "6333:3:20"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "6333:12:20"
																					},
																					{
																						"name": "twos",
																						"nodeType": "YulIdentifier",
																						"src": "6347:4:20"
																					}
																				],
																				"functionName": {
																					"name": "div",
																					"nodeType": "YulIdentifier",
																					"src": "6329:3:20"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6329:23:20"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "6354:1:20",
																				"type": "",
																				"value": "1"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "6325:3:20"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6325:31:20"
																	},
																	"variableNames": [
																		{
																			"name": "twos",
																			"nodeType": "YulIdentifier",
																			"src": "6317:4:20"
																		}
																	]
																}
															]
														},
														"evmVersion": "shanghai",
														"externalReferences": [
															{
																"declaration": 3441,
																"isOffset": false,
																"isSlot": false,
																"src": "6073:11:20",
																"valueSize": 1
															},
															{
																"declaration": 3441,
																"isOffset": false,
																"isSlot": false,
																"src": "6092:11:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "6177:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3447,
																"isOffset": false,
																"isSlot": false,
																"src": "6190:5:20",
																"valueSize": 1
															},
															{
																"declaration": 3478,
																"isOffset": false,
																"isSlot": false,
																"src": "6105:4:20",
																"valueSize": 1
															},
															{
																"declaration": 3478,
																"isOffset": false,
																"isSlot": false,
																"src": "6197:4:20",
																"valueSize": 1
															},
															{
																"declaration": 3478,
																"isOffset": false,
																"isSlot": false,
																"src": "6317:4:20",
																"valueSize": 1
															},
															{
																"declaration": 3478,
																"isOffset": false,
																"isSlot": false,
																"src": "6340:4:20",
																"valueSize": 1
															},
															{
																"declaration": 3478,
																"isOffset": false,
																"isSlot": false,
																"src": "6347:4:20",
																"valueSize": 1
															}
														],
														"id": 3486,
														"nodeType": "InlineAssembly",
														"src": "5999:371:20"
													},
													{
														"expression": {
															"id": 3491,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3487,
																"name": "prod0",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3447,
																"src": "6436:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "|=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3490,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3488,
																	"name": "prod1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3453,
																	"src": "6445:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"id": 3489,
																	"name": "twos",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3478,
																	"src": "6453:4:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "6445:12:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "6436:21:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3492,
														"nodeType": "ExpressionStatement",
														"src": "6436:21:20"
													},
													{
														"assignments": [
															3494
														],
														"declarations": [
															{
																"constant": false,
																"id": 3494,
																"mutability": "mutable",
																"name": "inverse",
																"nameLocation": "6783:7:20",
																"nodeType": "VariableDeclaration",
																"scope": 3558,
																"src": "6775:15:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3493,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "6775:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3501,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3500,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 3497,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"hexValue": "33",
																			"id": 3495,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "6794:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_3_by_1",
																				"typeString": "int_const 3"
																			},
																			"value": "3"
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "*",
																		"rightExpression": {
																			"id": 3496,
																			"name": "denominator",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3441,
																			"src": "6798:11:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "6794:15:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"id": 3498,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "6793:17:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "^",
															"rightExpression": {
																"hexValue": "32",
																"id": 3499,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6813:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2_by_1",
																	"typeString": "int_const 2"
																},
																"value": "2"
															},
															"src": "6793:21:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "6775:39:20"
													},
													{
														"expression": {
															"id": 3508,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3502,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7031:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3507,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3503,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7042:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3506,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3504,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7046:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3505,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7060:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7046:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7042:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7031:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3509,
														"nodeType": "ExpressionStatement",
														"src": "7031:36:20"
													},
													{
														"expression": {
															"id": 3516,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3510,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7100:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3515,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3511,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7111:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3514,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3512,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7115:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3513,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7129:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7115:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7111:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7100:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3517,
														"nodeType": "ExpressionStatement",
														"src": "7100:36:20"
													},
													{
														"expression": {
															"id": 3524,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3518,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7170:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3523,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3519,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7181:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3522,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3520,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7185:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3521,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7199:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7185:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7181:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7170:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3525,
														"nodeType": "ExpressionStatement",
														"src": "7170:36:20"
													},
													{
														"expression": {
															"id": 3532,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3526,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7240:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3531,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3527,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7251:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3530,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3528,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7255:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3529,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7269:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7255:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7251:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7240:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3533,
														"nodeType": "ExpressionStatement",
														"src": "7240:36:20"
													},
													{
														"expression": {
															"id": 3540,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3534,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7310:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3539,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3535,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7321:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3538,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3536,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7325:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3537,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7339:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7325:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7321:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7310:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3541,
														"nodeType": "ExpressionStatement",
														"src": "7310:36:20"
													},
													{
														"expression": {
															"id": 3548,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3542,
																"name": "inverse",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3494,
																"src": "7381:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "*=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3547,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "32",
																	"id": 3543,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7392:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3546,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3544,
																		"name": "denominator",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3441,
																		"src": "7396:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"id": 3545,
																		"name": "inverse",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3494,
																		"src": "7410:7:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7396:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7392:25:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7381:36:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3549,
														"nodeType": "ExpressionStatement",
														"src": "7381:36:20"
													},
													{
														"expression": {
															"id": 3554,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3550,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3444,
																"src": "7851:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3553,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3551,
																	"name": "prod0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3447,
																	"src": "7860:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"id": 3552,
																	"name": "inverse",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3494,
																	"src": "7868:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7860:15:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "7851:24:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3555,
														"nodeType": "ExpressionStatement",
														"src": "7851:24:20"
													},
													{
														"expression": {
															"id": 3556,
															"name": "result",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3444,
															"src": "7896:6:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 3445,
														"id": 3557,
														"nodeType": "Return",
														"src": "7889:13:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3435,
										"nodeType": "StructuredDocumentation",
										"src": "3485:313:20",
										"text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."
									},
									"id": 3560,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mulDiv",
									"nameLocation": "3812:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3442,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3437,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "3827:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3560,
												"src": "3819:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3436,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3819:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3439,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "3838:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3560,
												"src": "3830:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3438,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3830:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3441,
												"mutability": "mutable",
												"name": "denominator",
												"nameLocation": "3849:11:20",
												"nodeType": "VariableDeclaration",
												"scope": 3560,
												"src": "3841:19:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3440,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3841:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3818:43:20"
									},
									"returnParameters": {
										"id": 3445,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3444,
												"mutability": "mutable",
												"name": "result",
												"nameLocation": "3893:6:20",
												"nodeType": "VariableDeclaration",
												"scope": 3560,
												"src": "3885:14:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3443,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3885:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3884:16:20"
									},
									"scope": 4226,
									"src": "3803:4116:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3602,
										"nodeType": "Block",
										"src": "8161:192:20",
										"statements": [
											{
												"assignments": [
													3576
												],
												"declarations": [
													{
														"constant": false,
														"id": 3576,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "8179:6:20",
														"nodeType": "VariableDeclaration",
														"scope": 3602,
														"src": "8171:14:20",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 3575,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "8171:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3582,
												"initialValue": {
													"arguments": [
														{
															"id": 3578,
															"name": "x",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3563,
															"src": "8195:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 3579,
															"name": "y",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3565,
															"src": "8198:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 3580,
															"name": "denominator",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 3567,
															"src": "8201:11:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 3577,
														"name": "mulDiv",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															3560,
															3603
														],
														"referencedDeclaration": 3560,
														"src": "8188:6:20",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
														}
													},
													"id": 3581,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8188:25:20",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8171:42:20"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 3593,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [
															{
																"id": 3584,
																"name": "rounding",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3570,
																"src": "8244:8:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_enum$_Rounding_$3183",
																	"typeString": "enum Math.Rounding"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_enum$_Rounding_$3183",
																	"typeString": "enum Math.Rounding"
																}
															],
															"id": 3583,
															"name": "unsignedRoundsUp",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4225,
															"src": "8227:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3183_$returns$_t_bool_$",
																"typeString": "function (enum Math.Rounding) pure returns (bool)"
															}
														},
														"id": 3585,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "8227:26:20",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "&&",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 3592,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"arguments": [
																{
																	"id": 3587,
																	"name": "x",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3563,
																	"src": "8264:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3588,
																	"name": "y",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3565,
																	"src": "8267:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3589,
																	"name": "denominator",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3567,
																	"src": "8270:11:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 3586,
																"name": "mulmod",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967280,
																"src": "8257:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
																}
															},
															"id": 3590,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8257:25:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": ">",
														"rightExpression": {
															"hexValue": "30",
															"id": 3591,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "8285:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"src": "8257:29:20",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "8227:59:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 3599,
												"nodeType": "IfStatement",
												"src": "8223:101:20",
												"trueBody": {
													"id": 3598,
													"nodeType": "Block",
													"src": "8288:36:20",
													"statements": [
														{
															"expression": {
																"id": 3596,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 3594,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3576,
																	"src": "8302:6:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "+=",
																"rightHandSide": {
																	"hexValue": "31",
																	"id": 3595,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8312:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "8302:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 3597,
															"nodeType": "ExpressionStatement",
															"src": "8302:11:20"
														}
													]
												}
											},
											{
												"expression": {
													"id": 3600,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 3576,
													"src": "8340:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3574,
												"id": 3601,
												"nodeType": "Return",
												"src": "8333:13:20"
											}
										]
									},
									"documentation": {
										"id": 3561,
										"nodeType": "StructuredDocumentation",
										"src": "7925:121:20",
										"text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction."
									},
									"id": 3603,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mulDiv",
									"nameLocation": "8060:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3571,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3563,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "8075:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3603,
												"src": "8067:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3562,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8067:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3565,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "8086:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3603,
												"src": "8078:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3564,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8078:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3567,
												"mutability": "mutable",
												"name": "denominator",
												"nameLocation": "8097:11:20",
												"nodeType": "VariableDeclaration",
												"scope": 3603,
												"src": "8089:19:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3566,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8089:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3570,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "8119:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 3603,
												"src": "8110:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 3569,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 3568,
														"name": "Rounding",
														"nameLocations": [
															"8110:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "8110:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "8110:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8066:62:20"
									},
									"returnParameters": {
										"id": 3574,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3573,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3603,
												"src": "8152:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3572,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8152:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8151:9:20"
									},
									"scope": 4226,
									"src": "8051:302:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3714,
										"nodeType": "Block",
										"src": "8644:1585:20",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3613,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 3611,
														"name": "a",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3606,
														"src": "8658:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 3612,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "8663:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "8658:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 3617,
												"nodeType": "IfStatement",
												"src": "8654:45:20",
												"trueBody": {
													"id": 3616,
													"nodeType": "Block",
													"src": "8666:33:20",
													"statements": [
														{
															"expression": {
																"hexValue": "30",
																"id": 3614,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8687:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 3610,
															"id": 3615,
															"nodeType": "Return",
															"src": "8680:8:20"
														}
													]
												}
											},
											{
												"assignments": [
													3619
												],
												"declarations": [
													{
														"constant": false,
														"id": 3619,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "9386:6:20",
														"nodeType": "VariableDeclaration",
														"scope": 3714,
														"src": "9378:14:20",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 3618,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "9378:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3628,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 3627,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"hexValue": "31",
														"id": 3620,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "9395:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_1_by_1",
															"typeString": "int_const 1"
														},
														"value": "1"
													},
													"nodeType": "BinaryOperation",
													"operator": "<<",
													"rightExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3625,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 3622,
																			"name": "a",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3606,
																			"src": "9406:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"id": 3621,
																		"name": "log2",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [
																			3882,
																			3917
																		],
																		"referencedDeclaration": 3882,
																		"src": "9401:4:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																			"typeString": "function (uint256) pure returns (uint256)"
																		}
																	},
																	"id": 3623,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "9401:7:20",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3624,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9412:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "9401:12:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"id": 3626,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "9400:14:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "9395:19:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9378:36:20"
											},
											{
												"id": 3713,
												"nodeType": "UncheckedBlock",
												"src": "9815:408:20",
												"statements": [
													{
														"expression": {
															"id": 3638,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3629,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "9839:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3637,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3634,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3630,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "9849:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3633,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3631,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "9858:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3632,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "9862:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "9858:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "9849:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3635,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "9848:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3636,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9873:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "9848:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "9839:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3639,
														"nodeType": "ExpressionStatement",
														"src": "9839:35:20"
													},
													{
														"expression": {
															"id": 3649,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3640,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "9888:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3648,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3645,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3641,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "9898:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3644,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3642,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "9907:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3643,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "9911:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "9907:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "9898:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3646,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "9897:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3647,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9922:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "9897:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "9888:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3650,
														"nodeType": "ExpressionStatement",
														"src": "9888:35:20"
													},
													{
														"expression": {
															"id": 3660,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3651,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "9937:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3659,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3656,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3652,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "9947:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3655,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3653,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "9956:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3654,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "9960:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "9956:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "9947:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3657,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "9946:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3658,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9971:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "9946:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "9937:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3661,
														"nodeType": "ExpressionStatement",
														"src": "9937:35:20"
													},
													{
														"expression": {
															"id": 3671,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3662,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "9986:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3670,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3667,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3663,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "9996:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3666,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3664,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "10005:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3665,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "10009:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10005:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "9996:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3668,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "9995:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3669,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10020:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "9995:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "9986:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3672,
														"nodeType": "ExpressionStatement",
														"src": "9986:35:20"
													},
													{
														"expression": {
															"id": 3682,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3673,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "10035:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3681,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3678,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3674,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "10045:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3677,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3675,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "10054:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3676,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "10058:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10054:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "10045:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3679,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "10044:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3680,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10069:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "10044:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "10035:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3683,
														"nodeType": "ExpressionStatement",
														"src": "10035:35:20"
													},
													{
														"expression": {
															"id": 3693,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3684,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "10084:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3692,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3689,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3685,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "10094:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3688,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3686,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "10103:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3687,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "10107:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10103:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "10094:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3690,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "10093:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3691,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10118:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "10093:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "10084:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3694,
														"nodeType": "ExpressionStatement",
														"src": "10084:35:20"
													},
													{
														"expression": {
															"id": 3704,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 3695,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3619,
																"src": "10133:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3703,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 3700,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 3696,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 3619,
																				"src": "10143:6:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3699,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 3697,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3606,
																					"src": "10152:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "/",
																				"rightExpression": {
																					"id": 3698,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3619,
																					"src": "10156:6:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10152:10:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "10143:19:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 3701,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "10142:21:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3702,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10167:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "10142:26:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "10133:35:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 3705,
														"nodeType": "ExpressionStatement",
														"src": "10133:35:20"
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 3707,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3619,
																	"src": "10193:6:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 3710,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 3708,
																		"name": "a",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3606,
																		"src": "10201:1:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "/",
																	"rightExpression": {
																		"id": 3709,
																		"name": "result",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 3619,
																		"src": "10205:6:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "10201:10:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 3706,
																"name": "min",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3377,
																"src": "10189:3:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256,uint256) pure returns (uint256)"
																}
															},
															"id": 3711,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10189:23:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 3610,
														"id": 3712,
														"nodeType": "Return",
														"src": "10182:30:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3604,
										"nodeType": "StructuredDocumentation",
										"src": "8359:223:20",
										"text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."
									},
									"id": 3715,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sqrt",
									"nameLocation": "8596:4:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3607,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3606,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "8609:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3715,
												"src": "8601:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3605,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8601:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8600:11:20"
									},
									"returnParameters": {
										"id": 3610,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3609,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3715,
												"src": "8635:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3608,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8635:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8634:9:20"
									},
									"scope": 4226,
									"src": "8587:1642:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3749,
										"nodeType": "Block",
										"src": "10405:164:20",
										"statements": [
											{
												"id": 3748,
												"nodeType": "UncheckedBlock",
												"src": "10415:148:20",
												"statements": [
													{
														"assignments": [
															3727
														],
														"declarations": [
															{
																"constant": false,
																"id": 3727,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "10447:6:20",
																"nodeType": "VariableDeclaration",
																"scope": 3748,
																"src": "10439:14:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3726,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "10439:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3731,
														"initialValue": {
															"arguments": [
																{
																	"id": 3729,
																	"name": "a",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3718,
																	"src": "10461:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 3728,
																"name": "sqrt",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	3715,
																	3750
																],
																"referencedDeclaration": 3715,
																"src": "10456:4:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256) pure returns (uint256)"
																}
															},
															"id": 3730,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10456:7:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "10439:24:20"
													},
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3746,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3732,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3727,
																"src": "10484:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"components": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"id": 3741,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 3734,
																						"name": "rounding",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 3721,
																						"src": "10511:8:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					],
																					"id": 3733,
																					"name": "unsignedRoundsUp",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4225,
																					"src": "10494:16:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3183_$returns$_t_bool_$",
																						"typeString": "function (enum Math.Rounding) pure returns (bool)"
																					}
																				},
																				"id": 3735,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "10494:26:20",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&&",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3740,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 3738,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 3736,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 3727,
																						"src": "10524:6:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "*",
																					"rightExpression": {
																						"id": 3737,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 3727,
																						"src": "10533:6:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "10524:15:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<",
																				"rightExpression": {
																					"id": 3739,
																					"name": "a",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3718,
																					"src": "10542:1:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10524:19:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"src": "10494:49:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseExpression": {
																			"hexValue": "30",
																			"id": 3743,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "10550:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"id": 3744,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "Conditional",
																		"src": "10494:57:20",
																		"trueExpression": {
																			"hexValue": "31",
																			"id": 3742,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "10546:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint8",
																			"typeString": "uint8"
																		}
																	}
																],
																"id": 3745,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "10493:59:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint8",
																	"typeString": "uint8"
																}
															},
															"src": "10484:68:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 3725,
														"id": 3747,
														"nodeType": "Return",
														"src": "10477:75:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3716,
										"nodeType": "StructuredDocumentation",
										"src": "10235:89:20",
										"text": " @notice Calculates sqrt(a), following the selected rounding direction."
									},
									"id": 3750,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sqrt",
									"nameLocation": "10338:4:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3722,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3718,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "10351:1:20",
												"nodeType": "VariableDeclaration",
												"scope": 3750,
												"src": "10343:9:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3717,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10343:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3721,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "10363:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 3750,
												"src": "10354:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 3720,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 3719,
														"name": "Rounding",
														"nameLocations": [
															"10354:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "10354:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "10354:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10342:30:20"
									},
									"returnParameters": {
										"id": 3725,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3724,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3750,
												"src": "10396:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3723,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10396:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10395:9:20"
									},
									"scope": 4226,
									"src": "10329:240:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3881,
										"nodeType": "Block",
										"src": "10760:922:20",
										"statements": [
											{
												"assignments": [
													3759
												],
												"declarations": [
													{
														"constant": false,
														"id": 3759,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "10778:6:20",
														"nodeType": "VariableDeclaration",
														"scope": 3881,
														"src": "10770:14:20",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 3758,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "10770:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3761,
												"initialValue": {
													"hexValue": "30",
													"id": 3760,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "10787:1:20",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_0_by_1",
														"typeString": "int_const 0"
													},
													"value": "0"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "10770:18:20"
											},
											{
												"id": 3878,
												"nodeType": "UncheckedBlock",
												"src": "10798:855:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3766,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3764,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3762,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "10826:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313238",
																	"id": 3763,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10835:3:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_128_by_1",
																		"typeString": "int_const 128"
																	},
																	"value": "128"
																},
																"src": "10826:12:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3765,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10841:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "10826:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3776,
														"nodeType": "IfStatement",
														"src": "10822:99:20",
														"trueBody": {
															"id": 3775,
															"nodeType": "Block",
															"src": "10844:77:20",
															"statements": [
																{
																	"expression": {
																		"id": 3769,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3767,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "10862:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "313238",
																			"id": 3768,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "10872:3:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_128_by_1",
																				"typeString": "int_const 128"
																			},
																			"value": "128"
																		},
																		"src": "10862:13:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3770,
																	"nodeType": "ExpressionStatement",
																	"src": "10862:13:20"
																},
																{
																	"expression": {
																		"id": 3773,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3771,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "10893:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "313238",
																			"id": 3772,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "10903:3:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_128_by_1",
																				"typeString": "int_const 128"
																			},
																			"value": "128"
																		},
																		"src": "10893:13:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3774,
																	"nodeType": "ExpressionStatement",
																	"src": "10893:13:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3781,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3779,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3777,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "10938:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3634",
																	"id": 3778,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10947:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_64_by_1",
																		"typeString": "int_const 64"
																	},
																	"value": "64"
																},
																"src": "10938:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3780,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10952:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "10938:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3791,
														"nodeType": "IfStatement",
														"src": "10934:96:20",
														"trueBody": {
															"id": 3790,
															"nodeType": "Block",
															"src": "10955:75:20",
															"statements": [
																{
																	"expression": {
																		"id": 3784,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3782,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "10973:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 3783,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "10983:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "10973:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3785,
																	"nodeType": "ExpressionStatement",
																	"src": "10973:12:20"
																},
																{
																	"expression": {
																		"id": 3788,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3786,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11003:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 3787,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11013:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "11003:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3789,
																	"nodeType": "ExpressionStatement",
																	"src": "11003:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3796,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3794,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3792,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11047:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3332",
																	"id": 3793,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11056:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32_by_1",
																		"typeString": "int_const 32"
																	},
																	"value": "32"
																},
																"src": "11047:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3795,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11061:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11047:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3806,
														"nodeType": "IfStatement",
														"src": "11043:96:20",
														"trueBody": {
															"id": 3805,
															"nodeType": "Block",
															"src": "11064:75:20",
															"statements": [
																{
																	"expression": {
																		"id": 3799,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3797,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "11082:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 3798,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11092:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "11082:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3800,
																	"nodeType": "ExpressionStatement",
																	"src": "11082:12:20"
																},
																{
																	"expression": {
																		"id": 3803,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3801,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11112:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 3802,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11122:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "11112:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3804,
																	"nodeType": "ExpressionStatement",
																	"src": "11112:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3811,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3809,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3807,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11156:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3136",
																	"id": 3808,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11165:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16_by_1",
																		"typeString": "int_const 16"
																	},
																	"value": "16"
																},
																"src": "11156:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3810,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11170:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11156:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3821,
														"nodeType": "IfStatement",
														"src": "11152:96:20",
														"trueBody": {
															"id": 3820,
															"nodeType": "Block",
															"src": "11173:75:20",
															"statements": [
																{
																	"expression": {
																		"id": 3814,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3812,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "11191:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 3813,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11201:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "11191:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3815,
																	"nodeType": "ExpressionStatement",
																	"src": "11191:12:20"
																},
																{
																	"expression": {
																		"id": 3818,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3816,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11221:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 3817,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11231:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "11221:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3819,
																	"nodeType": "ExpressionStatement",
																	"src": "11221:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3826,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3824,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3822,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11265:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "38",
																	"id": 3823,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11274:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_8_by_1",
																		"typeString": "int_const 8"
																	},
																	"value": "8"
																},
																"src": "11265:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3825,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11278:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11265:14:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3836,
														"nodeType": "IfStatement",
														"src": "11261:93:20",
														"trueBody": {
															"id": 3835,
															"nodeType": "Block",
															"src": "11281:73:20",
															"statements": [
																{
																	"expression": {
																		"id": 3829,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3827,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "11299:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 3828,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11309:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "11299:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3830,
																	"nodeType": "ExpressionStatement",
																	"src": "11299:11:20"
																},
																{
																	"expression": {
																		"id": 3833,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3831,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11328:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 3832,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11338:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "11328:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3834,
																	"nodeType": "ExpressionStatement",
																	"src": "11328:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3841,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3839,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3837,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11371:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "34",
																	"id": 3838,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11380:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_4_by_1",
																		"typeString": "int_const 4"
																	},
																	"value": "4"
																},
																"src": "11371:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3840,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11384:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11371:14:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3851,
														"nodeType": "IfStatement",
														"src": "11367:93:20",
														"trueBody": {
															"id": 3850,
															"nodeType": "Block",
															"src": "11387:73:20",
															"statements": [
																{
																	"expression": {
																		"id": 3844,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3842,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "11405:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 3843,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11415:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "11405:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3845,
																	"nodeType": "ExpressionStatement",
																	"src": "11405:11:20"
																},
																{
																	"expression": {
																		"id": 3848,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3846,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11434:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 3847,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11444:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "11434:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3849,
																	"nodeType": "ExpressionStatement",
																	"src": "11434:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3856,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3854,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3852,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11477:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "32",
																	"id": 3853,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11486:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"src": "11477:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3855,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11490:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11477:14:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3866,
														"nodeType": "IfStatement",
														"src": "11473:93:20",
														"trueBody": {
															"id": 3865,
															"nodeType": "Block",
															"src": "11493:73:20",
															"statements": [
																{
																	"expression": {
																		"id": 3859,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3857,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3753,
																			"src": "11511:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 3858,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11521:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "11511:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3860,
																	"nodeType": "ExpressionStatement",
																	"src": "11511:11:20"
																},
																{
																	"expression": {
																		"id": 3863,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3861,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11540:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 3862,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11550:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "11540:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3864,
																	"nodeType": "ExpressionStatement",
																	"src": "11540:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3871,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 3869,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 3867,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "11583:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 3868,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11592:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "11583:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 3870,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11596:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11583:14:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3877,
														"nodeType": "IfStatement",
														"src": "11579:64:20",
														"trueBody": {
															"id": 3876,
															"nodeType": "Block",
															"src": "11599:44:20",
															"statements": [
																{
																	"expression": {
																		"id": 3874,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3872,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3759,
																			"src": "11617:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "31",
																			"id": 3873,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11627:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "11617:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3875,
																	"nodeType": "ExpressionStatement",
																	"src": "11617:11:20"
																}
															]
														}
													}
												]
											},
											{
												"expression": {
													"id": 3879,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 3759,
													"src": "11669:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3757,
												"id": 3880,
												"nodeType": "Return",
												"src": "11662:13:20"
											}
										]
									},
									"documentation": {
										"id": 3751,
										"nodeType": "StructuredDocumentation",
										"src": "10575:119:20",
										"text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."
									},
									"id": 3882,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log2",
									"nameLocation": "10708:4:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3754,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3753,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "10721:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 3882,
												"src": "10713:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3752,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10713:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10712:15:20"
									},
									"returnParameters": {
										"id": 3757,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3756,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3882,
												"src": "10751:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3755,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "10751:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10750:9:20"
									},
									"scope": 4226,
									"src": "10699:983:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3916,
										"nodeType": "Block",
										"src": "11915:168:20",
										"statements": [
											{
												"id": 3915,
												"nodeType": "UncheckedBlock",
												"src": "11925:152:20",
												"statements": [
													{
														"assignments": [
															3894
														],
														"declarations": [
															{
																"constant": false,
																"id": 3894,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "11957:6:20",
																"nodeType": "VariableDeclaration",
																"scope": 3915,
																"src": "11949:14:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 3893,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "11949:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 3898,
														"initialValue": {
															"arguments": [
																{
																	"id": 3896,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3885,
																	"src": "11971:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 3895,
																"name": "log2",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	3882,
																	3917
																],
																"referencedDeclaration": 3882,
																"src": "11966:4:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256) pure returns (uint256)"
																}
															},
															"id": 3897,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11966:11:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "11949:28:20"
													},
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3913,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3899,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3894,
																"src": "11998:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"components": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"id": 3908,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 3901,
																						"name": "rounding",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 3888,
																						"src": "12025:8:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					],
																					"id": 3900,
																					"name": "unsignedRoundsUp",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4225,
																					"src": "12008:16:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3183_$returns$_t_bool_$",
																						"typeString": "function (enum Math.Rounding) pure returns (bool)"
																					}
																				},
																				"id": 3902,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "12008:26:20",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&&",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 3907,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 3905,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "31",
																						"id": 3903,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "12038:1:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1_by_1",
																							"typeString": "int_const 1"
																						},
																						"value": "1"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<<",
																					"rightExpression": {
																						"id": 3904,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 3894,
																						"src": "12043:6:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "12038:11:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<",
																				"rightExpression": {
																					"id": 3906,
																					"name": "value",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 3885,
																					"src": "12052:5:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "12038:19:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"src": "12008:49:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseExpression": {
																			"hexValue": "30",
																			"id": 3910,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12064:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"id": 3911,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "Conditional",
																		"src": "12008:57:20",
																		"trueExpression": {
																			"hexValue": "31",
																			"id": 3909,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12060:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint8",
																			"typeString": "uint8"
																		}
																	}
																],
																"id": 3912,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "12007:59:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint8",
																	"typeString": "uint8"
																}
															},
															"src": "11998:68:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 3892,
														"id": 3914,
														"nodeType": "Return",
														"src": "11991:75:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 3883,
										"nodeType": "StructuredDocumentation",
										"src": "11688:142:20",
										"text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
									},
									"id": 3917,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log2",
									"nameLocation": "11844:4:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3889,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3885,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "11857:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 3917,
												"src": "11849:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3884,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "11849:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3888,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "11873:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 3917,
												"src": "11864:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 3887,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 3886,
														"name": "Rounding",
														"nameLocations": [
															"11864:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "11864:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "11864:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11848:34:20"
									},
									"returnParameters": {
										"id": 3892,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3891,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 3917,
												"src": "11906:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3890,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "11906:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11905:9:20"
									},
									"scope": 4226,
									"src": "11835:248:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4045,
										"nodeType": "Block",
										"src": "12276:854:20",
										"statements": [
											{
												"assignments": [
													3926
												],
												"declarations": [
													{
														"constant": false,
														"id": 3926,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "12294:6:20",
														"nodeType": "VariableDeclaration",
														"scope": 4045,
														"src": "12286:14:20",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 3925,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "12286:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 3928,
												"initialValue": {
													"hexValue": "30",
													"id": 3927,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "12303:1:20",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_0_by_1",
														"typeString": "int_const 0"
													},
													"value": "0"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "12286:18:20"
											},
											{
												"id": 4042,
												"nodeType": "UncheckedBlock",
												"src": "12314:787:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3933,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3929,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12342:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
																	"typeString": "int_const 1000...(57 digits omitted)...0000"
																},
																"id": 3932,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 3930,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12351:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "3634",
																	"id": 3931,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12357:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_64_by_1",
																		"typeString": "int_const 64"
																	},
																	"value": "64"
																},
																"src": "12351:8:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
																	"typeString": "int_const 1000...(57 digits omitted)...0000"
																}
															},
															"src": "12342:17:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3945,
														"nodeType": "IfStatement",
														"src": "12338:103:20",
														"trueBody": {
															"id": 3944,
															"nodeType": "Block",
															"src": "12361:80:20",
															"statements": [
																{
																	"expression": {
																		"id": 3938,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3934,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12379:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
																				"typeString": "int_const 1000...(57 digits omitted)...0000"
																			},
																			"id": 3937,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 3935,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12388:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "3634",
																				"id": 3936,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12394:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_64_by_1",
																					"typeString": "int_const 64"
																				},
																				"value": "64"
																			},
																			"src": "12388:8:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1",
																				"typeString": "int_const 1000...(57 digits omitted)...0000"
																			}
																		},
																		"src": "12379:17:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3939,
																	"nodeType": "ExpressionStatement",
																	"src": "12379:17:20"
																},
																{
																	"expression": {
																		"id": 3942,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3940,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12414:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 3941,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12424:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "12414:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3943,
																	"nodeType": "ExpressionStatement",
																	"src": "12414:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3950,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3946,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12458:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
																	"typeString": "int_const 1000...(25 digits omitted)...0000"
																},
																"id": 3949,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 3947,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12467:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "3332",
																	"id": 3948,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12473:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32_by_1",
																		"typeString": "int_const 32"
																	},
																	"value": "32"
																},
																"src": "12467:8:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
																	"typeString": "int_const 1000...(25 digits omitted)...0000"
																}
															},
															"src": "12458:17:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3962,
														"nodeType": "IfStatement",
														"src": "12454:103:20",
														"trueBody": {
															"id": 3961,
															"nodeType": "Block",
															"src": "12477:80:20",
															"statements": [
																{
																	"expression": {
																		"id": 3955,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3951,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12495:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
																				"typeString": "int_const 1000...(25 digits omitted)...0000"
																			},
																			"id": 3954,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 3952,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12504:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "3332",
																				"id": 3953,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12510:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_32_by_1",
																					"typeString": "int_const 32"
																				},
																				"value": "32"
																			},
																			"src": "12504:8:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_100000000000000000000000000000000_by_1",
																				"typeString": "int_const 1000...(25 digits omitted)...0000"
																			}
																		},
																		"src": "12495:17:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3956,
																	"nodeType": "ExpressionStatement",
																	"src": "12495:17:20"
																},
																{
																	"expression": {
																		"id": 3959,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3957,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12530:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 3958,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12540:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "12530:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3960,
																	"nodeType": "ExpressionStatement",
																	"src": "12530:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3967,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3963,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12574:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_10000000000000000_by_1",
																	"typeString": "int_const 10000000000000000"
																},
																"id": 3966,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 3964,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12583:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "3136",
																	"id": 3965,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12589:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16_by_1",
																		"typeString": "int_const 16"
																	},
																	"value": "16"
																},
																"src": "12583:8:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_10000000000000000_by_1",
																	"typeString": "int_const 10000000000000000"
																}
															},
															"src": "12574:17:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3979,
														"nodeType": "IfStatement",
														"src": "12570:103:20",
														"trueBody": {
															"id": 3978,
															"nodeType": "Block",
															"src": "12593:80:20",
															"statements": [
																{
																	"expression": {
																		"id": 3972,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3968,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12611:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_10000000000000000_by_1",
																				"typeString": "int_const 10000000000000000"
																			},
																			"id": 3971,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 3969,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12620:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "3136",
																				"id": 3970,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12626:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_16_by_1",
																					"typeString": "int_const 16"
																				},
																				"value": "16"
																			},
																			"src": "12620:8:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_10000000000000000_by_1",
																				"typeString": "int_const 10000000000000000"
																			}
																		},
																		"src": "12611:17:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3973,
																	"nodeType": "ExpressionStatement",
																	"src": "12611:17:20"
																},
																{
																	"expression": {
																		"id": 3976,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3974,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12646:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 3975,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12656:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "12646:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3977,
																	"nodeType": "ExpressionStatement",
																	"src": "12646:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 3984,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3980,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12690:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_100000000_by_1",
																	"typeString": "int_const 100000000"
																},
																"id": 3983,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 3981,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12699:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "38",
																	"id": 3982,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12705:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_8_by_1",
																		"typeString": "int_const 8"
																	},
																	"value": "8"
																},
																"src": "12699:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_100000000_by_1",
																	"typeString": "int_const 100000000"
																}
															},
															"src": "12690:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 3996,
														"nodeType": "IfStatement",
														"src": "12686:100:20",
														"trueBody": {
															"id": 3995,
															"nodeType": "Block",
															"src": "12708:78:20",
															"statements": [
																{
																	"expression": {
																		"id": 3989,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3985,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12726:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_100000000_by_1",
																				"typeString": "int_const 100000000"
																			},
																			"id": 3988,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 3986,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12735:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "38",
																				"id": 3987,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12741:1:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_8_by_1",
																					"typeString": "int_const 8"
																				},
																				"value": "8"
																			},
																			"src": "12735:7:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_100000000_by_1",
																				"typeString": "int_const 100000000"
																			}
																		},
																		"src": "12726:16:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3990,
																	"nodeType": "ExpressionStatement",
																	"src": "12726:16:20"
																},
																{
																	"expression": {
																		"id": 3993,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 3991,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12760:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 3992,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12770:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "12760:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 3994,
																	"nodeType": "ExpressionStatement",
																	"src": "12760:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4001,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 3997,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12803:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_10000_by_1",
																	"typeString": "int_const 10000"
																},
																"id": 4000,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 3998,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12812:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "34",
																	"id": 3999,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12818:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_4_by_1",
																		"typeString": "int_const 4"
																	},
																	"value": "4"
																},
																"src": "12812:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_10000_by_1",
																	"typeString": "int_const 10000"
																}
															},
															"src": "12803:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4013,
														"nodeType": "IfStatement",
														"src": "12799:100:20",
														"trueBody": {
															"id": 4012,
															"nodeType": "Block",
															"src": "12821:78:20",
															"statements": [
																{
																	"expression": {
																		"id": 4006,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4002,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12839:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_10000_by_1",
																				"typeString": "int_const 10000"
																			},
																			"id": 4005,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 4003,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12848:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "34",
																				"id": 4004,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12854:1:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_4_by_1",
																					"typeString": "int_const 4"
																				},
																				"value": "4"
																			},
																			"src": "12848:7:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_10000_by_1",
																				"typeString": "int_const 10000"
																			}
																		},
																		"src": "12839:16:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4007,
																	"nodeType": "ExpressionStatement",
																	"src": "12839:16:20"
																},
																{
																	"expression": {
																		"id": 4010,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4008,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12873:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 4009,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12883:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "12873:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4011,
																	"nodeType": "ExpressionStatement",
																	"src": "12873:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4018,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4014,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "12916:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_100_by_1",
																	"typeString": "int_const 100"
																},
																"id": 4017,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 4015,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12925:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "32",
																	"id": 4016,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12931:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_2_by_1",
																		"typeString": "int_const 2"
																	},
																	"value": "2"
																},
																"src": "12925:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_100_by_1",
																	"typeString": "int_const 100"
																}
															},
															"src": "12916:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4030,
														"nodeType": "IfStatement",
														"src": "12912:100:20",
														"trueBody": {
															"id": 4029,
															"nodeType": "Block",
															"src": "12934:78:20",
															"statements": [
																{
																	"expression": {
																		"id": 4023,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4019,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3920,
																			"src": "12952:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "/=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_rational_100_by_1",
																				"typeString": "int_const 100"
																			},
																			"id": 4022,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130",
																				"id": 4020,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12961:2:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10_by_1",
																					"typeString": "int_const 10"
																				},
																				"value": "10"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "**",
																			"rightExpression": {
																				"hexValue": "32",
																				"id": 4021,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12967:1:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_2_by_1",
																					"typeString": "int_const 2"
																				},
																				"value": "2"
																			},
																			"src": "12961:7:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_100_by_1",
																				"typeString": "int_const 100"
																			}
																		},
																		"src": "12952:16:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4024,
																	"nodeType": "ExpressionStatement",
																	"src": "12952:16:20"
																},
																{
																	"expression": {
																		"id": 4027,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4025,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "12986:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 4026,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12996:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "12986:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4028,
																	"nodeType": "ExpressionStatement",
																	"src": "12986:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4035,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4031,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 3920,
																"src": "13029:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_rational_10_by_1",
																	"typeString": "int_const 10"
																},
																"id": 4034,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"leftExpression": {
																	"hexValue": "3130",
																	"id": 4032,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13038:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_10_by_1",
																		"typeString": "int_const 10"
																	},
																	"value": "10"
																},
																"nodeType": "BinaryOperation",
																"operator": "**",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 4033,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13044:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "13038:7:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_10_by_1",
																	"typeString": "int_const 10"
																}
															},
															"src": "13029:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4041,
														"nodeType": "IfStatement",
														"src": "13025:66:20",
														"trueBody": {
															"id": 4040,
															"nodeType": "Block",
															"src": "13047:44:20",
															"statements": [
																{
																	"expression": {
																		"id": 4038,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4036,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3926,
																			"src": "13065:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "31",
																			"id": 4037,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "13075:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "13065:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4039,
																	"nodeType": "ExpressionStatement",
																	"src": "13065:11:20"
																}
															]
														}
													}
												]
											},
											{
												"expression": {
													"id": 4043,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 3926,
													"src": "13117:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 3924,
												"id": 4044,
												"nodeType": "Return",
												"src": "13110:13:20"
											}
										]
									},
									"documentation": {
										"id": 3918,
										"nodeType": "StructuredDocumentation",
										"src": "12089:120:20",
										"text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."
									},
									"id": 4046,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log10",
									"nameLocation": "12223:5:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3921,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3920,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "12237:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 4046,
												"src": "12229:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3919,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "12229:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12228:15:20"
									},
									"returnParameters": {
										"id": 3924,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3923,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4046,
												"src": "12267:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3922,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "12267:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12266:9:20"
									},
									"scope": 4226,
									"src": "12214:916:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4080,
										"nodeType": "Block",
										"src": "13365:170:20",
										"statements": [
											{
												"id": 4079,
												"nodeType": "UncheckedBlock",
												"src": "13375:154:20",
												"statements": [
													{
														"assignments": [
															4058
														],
														"declarations": [
															{
																"constant": false,
																"id": 4058,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "13407:6:20",
																"nodeType": "VariableDeclaration",
																"scope": 4079,
																"src": "13399:14:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4057,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "13399:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4062,
														"initialValue": {
															"arguments": [
																{
																	"id": 4060,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4049,
																	"src": "13422:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 4059,
																"name": "log10",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4046,
																	4081
																],
																"referencedDeclaration": 4046,
																"src": "13416:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256) pure returns (uint256)"
																}
															},
															"id": 4061,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13416:12:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "13399:29:20"
													},
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4077,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4063,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4058,
																"src": "13449:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"components": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"id": 4072,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 4065,
																						"name": "rounding",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4052,
																						"src": "13476:8:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					],
																					"id": 4064,
																					"name": "unsignedRoundsUp",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4225,
																					"src": "13459:16:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3183_$returns$_t_bool_$",
																						"typeString": "function (enum Math.Rounding) pure returns (bool)"
																					}
																				},
																				"id": 4066,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "13459:26:20",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&&",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4071,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4069,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "3130",
																						"id": 4067,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "13489:2:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_10_by_1",
																							"typeString": "int_const 10"
																						},
																						"value": "10"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "**",
																					"rightExpression": {
																						"id": 4068,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4058,
																						"src": "13495:6:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "13489:12:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<",
																				"rightExpression": {
																					"id": 4070,
																					"name": "value",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4049,
																					"src": "13504:5:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "13489:20:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"src": "13459:50:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseExpression": {
																			"hexValue": "30",
																			"id": 4074,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "13516:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"id": 4075,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "Conditional",
																		"src": "13459:58:20",
																		"trueExpression": {
																			"hexValue": "31",
																			"id": 4073,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "13512:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint8",
																			"typeString": "uint8"
																		}
																	}
																],
																"id": 4076,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "13458:60:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint8",
																	"typeString": "uint8"
																}
															},
															"src": "13449:69:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 4056,
														"id": 4078,
														"nodeType": "Return",
														"src": "13442:76:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4047,
										"nodeType": "StructuredDocumentation",
										"src": "13136:143:20",
										"text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
									},
									"id": 4081,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log10",
									"nameLocation": "13293:5:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4053,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4049,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "13307:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 4081,
												"src": "13299:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4048,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13299:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4052,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "13323:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 4081,
												"src": "13314:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 4051,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 4050,
														"name": "Rounding",
														"nameLocations": [
															"13314:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "13314:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "13314:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13298:34:20"
									},
									"returnParameters": {
										"id": 4056,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4055,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4081,
												"src": "13356:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4054,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13356:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13355:9:20"
									},
									"scope": 4226,
									"src": "13284:251:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4167,
										"nodeType": "Block",
										"src": "13855:600:20",
										"statements": [
											{
												"assignments": [
													4090
												],
												"declarations": [
													{
														"constant": false,
														"id": 4090,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "13873:6:20",
														"nodeType": "VariableDeclaration",
														"scope": 4167,
														"src": "13865:14:20",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 4089,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "13865:7:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 4092,
												"initialValue": {
													"hexValue": "30",
													"id": 4091,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "13882:1:20",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_0_by_1",
														"typeString": "int_const 0"
													},
													"value": "0"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "13865:18:20"
											},
											{
												"id": 4164,
												"nodeType": "UncheckedBlock",
												"src": "13893:533:20",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4097,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4095,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4093,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4084,
																	"src": "13921:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313238",
																	"id": 4094,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13930:3:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_128_by_1",
																		"typeString": "int_const 128"
																	},
																	"value": "128"
																},
																"src": "13921:12:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 4096,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "13936:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "13921:16:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4107,
														"nodeType": "IfStatement",
														"src": "13917:98:20",
														"trueBody": {
															"id": 4106,
															"nodeType": "Block",
															"src": "13939:76:20",
															"statements": [
																{
																	"expression": {
																		"id": 4100,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4098,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4084,
																			"src": "13957:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "313238",
																			"id": 4099,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "13967:3:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_128_by_1",
																				"typeString": "int_const 128"
																			},
																			"value": "128"
																		},
																		"src": "13957:13:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4101,
																	"nodeType": "ExpressionStatement",
																	"src": "13957:13:20"
																},
																{
																	"expression": {
																		"id": 4104,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4102,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4090,
																			"src": "13988:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 4103,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "13998:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "13988:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4105,
																	"nodeType": "ExpressionStatement",
																	"src": "13988:12:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4112,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4110,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4108,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4084,
																	"src": "14032:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3634",
																	"id": 4109,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14041:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_64_by_1",
																		"typeString": "int_const 64"
																	},
																	"value": "64"
																},
																"src": "14032:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 4111,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14046:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "14032:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4122,
														"nodeType": "IfStatement",
														"src": "14028:95:20",
														"trueBody": {
															"id": 4121,
															"nodeType": "Block",
															"src": "14049:74:20",
															"statements": [
																{
																	"expression": {
																		"id": 4115,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4113,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4084,
																			"src": "14067:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 4114,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14077:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "14067:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4116,
																	"nodeType": "ExpressionStatement",
																	"src": "14067:12:20"
																},
																{
																	"expression": {
																		"id": 4119,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4117,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4090,
																			"src": "14097:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 4118,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14107:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "14097:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4120,
																	"nodeType": "ExpressionStatement",
																	"src": "14097:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4127,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4125,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4123,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4084,
																	"src": "14140:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3332",
																	"id": 4124,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14149:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32_by_1",
																		"typeString": "int_const 32"
																	},
																	"value": "32"
																},
																"src": "14140:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 4126,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14154:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "14140:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4137,
														"nodeType": "IfStatement",
														"src": "14136:95:20",
														"trueBody": {
															"id": 4136,
															"nodeType": "Block",
															"src": "14157:74:20",
															"statements": [
																{
																	"expression": {
																		"id": 4130,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4128,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4084,
																			"src": "14175:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 4129,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14185:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "14175:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4131,
																	"nodeType": "ExpressionStatement",
																	"src": "14175:12:20"
																},
																{
																	"expression": {
																		"id": 4134,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4132,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4090,
																			"src": "14205:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 4133,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14215:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "14205:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4135,
																	"nodeType": "ExpressionStatement",
																	"src": "14205:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4142,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4140,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4138,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4084,
																	"src": "14248:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3136",
																	"id": 4139,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14257:2:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16_by_1",
																		"typeString": "int_const 16"
																	},
																	"value": "16"
																},
																"src": "14248:11:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 4141,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14262:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "14248:15:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4152,
														"nodeType": "IfStatement",
														"src": "14244:95:20",
														"trueBody": {
															"id": 4151,
															"nodeType": "Block",
															"src": "14265:74:20",
															"statements": [
																{
																	"expression": {
																		"id": 4145,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4143,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4084,
																			"src": "14283:5:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 4144,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14293:2:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "14283:12:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4146,
																	"nodeType": "ExpressionStatement",
																	"src": "14283:12:20"
																},
																{
																	"expression": {
																		"id": 4149,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4147,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4090,
																			"src": "14313:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 4148,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14323:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "14313:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4150,
																	"nodeType": "ExpressionStatement",
																	"src": "14313:11:20"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4157,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4155,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4153,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4084,
																	"src": "14356:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "38",
																	"id": 4154,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14365:1:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_8_by_1",
																		"typeString": "int_const 8"
																	},
																	"value": "8"
																},
																"src": "14356:10:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 4156,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14369:1:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "14356:14:20",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4163,
														"nodeType": "IfStatement",
														"src": "14352:64:20",
														"trueBody": {
															"id": 4162,
															"nodeType": "Block",
															"src": "14372:44:20",
															"statements": [
																{
																	"expression": {
																		"id": 4160,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4158,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4090,
																			"src": "14390:6:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "31",
																			"id": 4159,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14400:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"src": "14390:11:20",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4161,
																	"nodeType": "ExpressionStatement",
																	"src": "14390:11:20"
																}
															]
														}
													}
												]
											},
											{
												"expression": {
													"id": 4165,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 4090,
													"src": "14442:6:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 4088,
												"id": 4166,
												"nodeType": "Return",
												"src": "14435:13:20"
											}
										]
									},
									"documentation": {
										"id": 4082,
										"nodeType": "StructuredDocumentation",
										"src": "13541:246:20",
										"text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."
									},
									"id": 4168,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log256",
									"nameLocation": "13801:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4085,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4084,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "13816:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 4168,
												"src": "13808:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4083,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13808:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13807:15:20"
									},
									"returnParameters": {
										"id": 4088,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4087,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4168,
												"src": "13846:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4086,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13846:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13845:9:20"
									},
									"scope": 4226,
									"src": "13792:663:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4205,
										"nodeType": "Block",
										"src": "14692:177:20",
										"statements": [
											{
												"id": 4204,
												"nodeType": "UncheckedBlock",
												"src": "14702:161:20",
												"statements": [
													{
														"assignments": [
															4180
														],
														"declarations": [
															{
																"constant": false,
																"id": 4180,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "14734:6:20",
																"nodeType": "VariableDeclaration",
																"scope": 4204,
																"src": "14726:14:20",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4179,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "14726:7:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4184,
														"initialValue": {
															"arguments": [
																{
																	"id": 4182,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4171,
																	"src": "14750:5:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 4181,
																"name": "log256",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4168,
																	4206
																],
																"referencedDeclaration": 4168,
																"src": "14743:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																	"typeString": "function (uint256) pure returns (uint256)"
																}
															},
															"id": 4183,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14743:13:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "14726:30:20"
													},
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4202,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4185,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4180,
																"src": "14777:6:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "+",
															"rightExpression": {
																"components": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"id": 4197,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 4187,
																						"name": "rounding",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4174,
																						"src": "14804:8:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_enum$_Rounding_$3183",
																							"typeString": "enum Math.Rounding"
																						}
																					],
																					"id": 4186,
																					"name": "unsignedRoundsUp",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4225,
																					"src": "14787:16:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$3183_$returns$_t_bool_$",
																						"typeString": "function (enum Math.Rounding) pure returns (bool)"
																					}
																				},
																				"id": 4188,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "14787:26:20",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&&",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4196,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4194,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "31",
																						"id": 4189,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "14817:1:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1_by_1",
																							"typeString": "int_const 1"
																						},
																						"value": "1"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<<",
																					"rightExpression": {
																						"components": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 4192,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 4190,
																									"name": "result",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 4180,
																									"src": "14823:6:20",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "<<",
																								"rightExpression": {
																									"hexValue": "33",
																									"id": 4191,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "14833:1:20",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_3_by_1",
																										"typeString": "int_const 3"
																									},
																									"value": "3"
																								},
																								"src": "14823:11:20",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"id": 4193,
																						"isConstant": false,
																						"isInlineArray": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "TupleExpression",
																						"src": "14822:13:20",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "14817:18:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<",
																				"rightExpression": {
																					"id": 4195,
																					"name": "value",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4171,
																					"src": "14838:5:20",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "14817:26:20",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"src": "14787:56:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseExpression": {
																			"hexValue": "30",
																			"id": 4199,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14850:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"id": 4200,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "Conditional",
																		"src": "14787:64:20",
																		"trueExpression": {
																			"hexValue": "31",
																			"id": 4198,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14846:1:20",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1_by_1",
																				"typeString": "int_const 1"
																			},
																			"value": "1"
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint8",
																			"typeString": "uint8"
																		}
																	}
																],
																"id": 4201,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "14786:66:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint8",
																	"typeString": "uint8"
																}
															},
															"src": "14777:75:20",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 4178,
														"id": 4203,
														"nodeType": "Return",
														"src": "14770:82:20"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4169,
										"nodeType": "StructuredDocumentation",
										"src": "14461:144:20",
										"text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."
									},
									"id": 4206,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log256",
									"nameLocation": "14619:6:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4175,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4171,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "14634:5:20",
												"nodeType": "VariableDeclaration",
												"scope": 4206,
												"src": "14626:13:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4170,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "14626:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4174,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "14650:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 4206,
												"src": "14641:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 4173,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 4172,
														"name": "Rounding",
														"nameLocations": [
															"14641:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "14641:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "14641:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14625:34:20"
									},
									"returnParameters": {
										"id": 4178,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4177,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4206,
												"src": "14683:7:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4176,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "14683:7:20",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14682:9:20"
									},
									"scope": 4226,
									"src": "14610:259:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4224,
										"nodeType": "Block",
										"src": "15067:48:20",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													},
													"id": 4222,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_uint8",
															"typeString": "uint8"
														},
														"id": 4220,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"arguments": [
																{
																	"id": 4217,
																	"name": "rounding",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4210,
																	"src": "15090:8:20",
																	"typeDescriptions": {
																		"typeIdentifier": "t_enum$_Rounding_$3183",
																		"typeString": "enum Math.Rounding"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_enum$_Rounding_$3183",
																		"typeString": "enum Math.Rounding"
																	}
																],
																"id": 4216,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "15084:5:20",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint8_$",
																	"typeString": "type(uint8)"
																},
																"typeName": {
																	"id": 4215,
																	"name": "uint8",
																	"nodeType": "ElementaryTypeName",
																	"src": "15084:5:20",
																	"typeDescriptions": {}
																}
															},
															"id": 4218,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15084:15:20",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint8",
																"typeString": "uint8"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "%",
														"rightExpression": {
															"hexValue": "32",
															"id": 4219,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "15102:1:20",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														},
														"src": "15084:19:20",
														"typeDescriptions": {
															"typeIdentifier": "t_uint8",
															"typeString": "uint8"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "31",
														"id": 4221,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "15107:1:20",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_1_by_1",
															"typeString": "int_const 1"
														},
														"value": "1"
													},
													"src": "15084:24:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 4214,
												"id": 4223,
												"nodeType": "Return",
												"src": "15077:31:20"
											}
										]
									},
									"documentation": {
										"id": 4207,
										"nodeType": "StructuredDocumentation",
										"src": "14875:113:20",
										"text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."
									},
									"id": 4225,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "unsignedRoundsUp",
									"nameLocation": "15002:16:20",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4211,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4210,
												"mutability": "mutable",
												"name": "rounding",
												"nameLocation": "15028:8:20",
												"nodeType": "VariableDeclaration",
												"scope": 4225,
												"src": "15019:17:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_Rounding_$3183",
													"typeString": "enum Math.Rounding"
												},
												"typeName": {
													"id": 4209,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 4208,
														"name": "Rounding",
														"nameLocations": [
															"15019:8:20"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 3183,
														"src": "15019:8:20"
													},
													"referencedDeclaration": 3183,
													"src": "15019:8:20",
													"typeDescriptions": {
														"typeIdentifier": "t_enum$_Rounding_$3183",
														"typeString": "enum Math.Rounding"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15018:19:20"
									},
									"returnParameters": {
										"id": 4214,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4213,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4225,
												"src": "15061:4:20",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4212,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "15061:4:20",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15060:6:20"
									},
									"scope": 4226,
									"src": "14993:122:20",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 4227,
							"src": "203:14914:20",
							"usedErrors": [
								3178
							],
							"usedEvents": []
						}
					],
					"src": "103:15015:20"
				},
				"id": 20
			},
			"@openzeppelin/contracts/utils/math/SignedMath.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol",
					"exportedSymbols": {
						"SignedMath": [
							4331
						]
					},
					"id": 4332,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 4228,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "109:24:21"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "SignedMath",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 4229,
								"nodeType": "StructuredDocumentation",
								"src": "135:80:21",
								"text": " @dev Standard signed math utilities missing in the Solidity language."
							},
							"fullyImplemented": true,
							"id": 4331,
							"linearizedBaseContracts": [
								4331
							],
							"name": "SignedMath",
							"nameLocation": "224:10:21",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"body": {
										"id": 4246,
										"nodeType": "Block",
										"src": "376:37:21",
										"statements": [
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"id": 4241,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 4239,
															"name": "a",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4232,
															"src": "393:1:21",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": ">",
														"rightExpression": {
															"id": 4240,
															"name": "b",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4234,
															"src": "397:1:21",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"src": "393:5:21",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"id": 4243,
														"name": "b",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4234,
														"src": "405:1:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"id": 4244,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "393:13:21",
													"trueExpression": {
														"id": 4242,
														"name": "a",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4232,
														"src": "401:1:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"functionReturnParameters": 4238,
												"id": 4245,
												"nodeType": "Return",
												"src": "386:20:21"
											}
										]
									},
									"documentation": {
										"id": 4230,
										"nodeType": "StructuredDocumentation",
										"src": "241:66:21",
										"text": " @dev Returns the largest of two signed numbers."
									},
									"id": 4247,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "max",
									"nameLocation": "321:3:21",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4235,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4232,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "332:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4247,
												"src": "325:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4231,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "325:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4234,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "342:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4247,
												"src": "335:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4233,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "335:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "324:20:21"
									},
									"returnParameters": {
										"id": 4238,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4237,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4247,
												"src": "368:6:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4236,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "368:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "367:8:21"
									},
									"scope": 4331,
									"src": "312:101:21",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4264,
										"nodeType": "Block",
										"src": "555:37:21",
										"statements": [
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"id": 4259,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 4257,
															"name": "a",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4250,
															"src": "572:1:21",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "<",
														"rightExpression": {
															"id": 4258,
															"name": "b",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4252,
															"src": "576:1:21",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"src": "572:5:21",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"id": 4261,
														"name": "b",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4252,
														"src": "584:1:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"id": 4262,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "572:13:21",
													"trueExpression": {
														"id": 4260,
														"name": "a",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4250,
														"src": "580:1:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"functionReturnParameters": 4256,
												"id": 4263,
												"nodeType": "Return",
												"src": "565:20:21"
											}
										]
									},
									"documentation": {
										"id": 4248,
										"nodeType": "StructuredDocumentation",
										"src": "419:67:21",
										"text": " @dev Returns the smallest of two signed numbers."
									},
									"id": 4265,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "min",
									"nameLocation": "500:3:21",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4253,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4250,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "511:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4265,
												"src": "504:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4249,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "504:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4252,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "521:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4265,
												"src": "514:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4251,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "514:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "503:20:21"
									},
									"returnParameters": {
										"id": 4256,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4255,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4265,
												"src": "547:6:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4254,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "547:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "546:8:21"
									},
									"scope": 4331,
									"src": "491:101:21",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4308,
										"nodeType": "Block",
										"src": "797:162:21",
										"statements": [
											{
												"assignments": [
													4276
												],
												"declarations": [
													{
														"constant": false,
														"id": 4276,
														"mutability": "mutable",
														"name": "x",
														"nameLocation": "866:1:21",
														"nodeType": "VariableDeclaration",
														"scope": 4308,
														"src": "859:8:21",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"typeName": {
															"id": 4275,
															"name": "int256",
															"nodeType": "ElementaryTypeName",
															"src": "859:6:21",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 4289,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													},
													"id": 4288,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																},
																"id": 4279,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4277,
																	"name": "a",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4268,
																	"src": "871:1:21",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"id": 4278,
																	"name": "b",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4270,
																	"src": "875:1:21",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"src": "871:5:21",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															}
														],
														"id": 4280,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "870:7:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																},
																"id": 4286,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			},
																			"id": 4283,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4281,
																				"name": "a",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4268,
																				"src": "882:1:21",
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "^",
																			"rightExpression": {
																				"id": 4282,
																				"name": "b",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4270,
																				"src": "886:1:21",
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			},
																			"src": "882:5:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		}
																	],
																	"id": 4284,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "881:7:21",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 4285,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "892:1:21",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "881:12:21",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															}
														],
														"id": 4287,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "880:14:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"src": "870:24:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "859:35:21"
											},
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													},
													"id": 4306,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 4290,
														"name": "x",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4276,
														"src": "911:1:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																},
																"id": 4304,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4298,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 4295,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4276,
																						"src": "931:1:21",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					],
																					"id": 4294,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "923:7:21",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint256_$",
																						"typeString": "type(uint256)"
																					},
																					"typeName": {
																						"id": 4293,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "923:7:21",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 4296,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "923:10:21",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">>",
																			"rightExpression": {
																				"hexValue": "323535",
																				"id": 4297,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "937:3:21",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_255_by_1",
																					"typeString": "int_const 255"
																				},
																				"value": "255"
																			},
																			"src": "923:17:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"id": 4292,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "916:6:21",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_int256_$",
																			"typeString": "type(int256)"
																		},
																		"typeName": {
																			"id": 4291,
																			"name": "int256",
																			"nodeType": "ElementaryTypeName",
																			"src": "916:6:21",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4299,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "916:25:21",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			},
																			"id": 4302,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4300,
																				"name": "a",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4268,
																				"src": "945:1:21",
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "^",
																			"rightExpression": {
																				"id": 4301,
																				"name": "b",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4270,
																				"src": "949:1:21",
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			},
																			"src": "945:5:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		}
																	],
																	"id": 4303,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "944:7:21",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																},
																"src": "916:35:21",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															}
														],
														"id": 4305,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "915:37:21",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														}
													},
													"src": "911:41:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"functionReturnParameters": 4274,
												"id": 4307,
												"nodeType": "Return",
												"src": "904:48:21"
											}
										]
									},
									"documentation": {
										"id": 4266,
										"nodeType": "StructuredDocumentation",
										"src": "598:126:21",
										"text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."
									},
									"id": 4309,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "average",
									"nameLocation": "738:7:21",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4271,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4268,
												"mutability": "mutable",
												"name": "a",
												"nameLocation": "753:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "746:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4267,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "746:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4270,
												"mutability": "mutable",
												"name": "b",
												"nameLocation": "763:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "756:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4269,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "756:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "745:20:21"
									},
									"returnParameters": {
										"id": 4274,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4273,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "789:6:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4272,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "789:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "788:8:21"
									},
									"scope": 4331,
									"src": "729:230:21",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4329,
										"nodeType": "Block",
										"src": "1103:158:21",
										"statements": [
											{
												"id": 4328,
												"nodeType": "UncheckedBlock",
												"src": "1113:142:21",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		},
																		"id": 4321,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4319,
																			"name": "n",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4312,
																			"src": "1228:1:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">=",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 4320,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1233:1:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "1228:6:21",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseExpression": {
																		"id": 4324,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "UnaryOperation",
																		"operator": "-",
																		"prefix": true,
																		"src": "1241:2:21",
																		"subExpression": {
																			"id": 4323,
																			"name": "n",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4312,
																			"src": "1242:1:21",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"id": 4325,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "Conditional",
																	"src": "1228:15:21",
																	"trueExpression": {
																		"id": 4322,
																		"name": "n",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4312,
																		"src": "1237:1:21",
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																],
																"id": 4318,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "1220:7:21",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint256_$",
																	"typeString": "type(uint256)"
																},
																"typeName": {
																	"id": 4317,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "1220:7:21",
																	"typeDescriptions": {}
																}
															},
															"id": 4326,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1220:24:21",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 4316,
														"id": 4327,
														"nodeType": "Return",
														"src": "1213:31:21"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4310,
										"nodeType": "StructuredDocumentation",
										"src": "965:78:21",
										"text": " @dev Returns the absolute unsigned value of a signed value."
									},
									"id": 4330,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "abs",
									"nameLocation": "1057:3:21",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4313,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4312,
												"mutability": "mutable",
												"name": "n",
												"nameLocation": "1068:1:21",
												"nodeType": "VariableDeclaration",
												"scope": 4330,
												"src": "1061:8:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4311,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "1061:6:21",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1060:10:21"
									},
									"returnParameters": {
										"id": 4316,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4315,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4330,
												"src": "1094:7:21",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4314,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1094:7:21",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1093:9:21"
									},
									"scope": 4331,
									"src": "1048:213:21",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 4332,
							"src": "216:1047:21",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "109:1155:21"
				},
				"id": 21
			},
			"abdk-libraries-solidity/ABDKMathQuad.sol": {
				"ast": {
					"absolutePath": "abdk-libraries-solidity/ABDKMathQuad.sol",
					"exportedSymbols": {
						"ABDKMathQuad": [
							9524
						]
					},
					"id": 9525,
					"license": "BSD-4-Clause",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 4333,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "190:23:22"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "ABDKMathQuad",
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 4334,
								"nodeType": "StructuredDocumentation",
								"src": "215:270:22",
								"text": " Smart contract library of mathematical functions operating with IEEE 754\n quadruple-precision binary floating-point numbers (quadruple precision\n numbers).  As long as quadruple precision numbers are 16-bytes long, they are\n represented by bytes16 type."
							},
							"fullyImplemented": true,
							"id": 9524,
							"linearizedBaseContracts": [
								9524
							],
							"name": "ABDKMathQuad",
							"nameLocation": "494:12:22",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"id": 4337,
									"mutability": "constant",
									"name": "POSITIVE_ZERO",
									"nameLocation": "555:13:22",
									"nodeType": "VariableDeclaration",
									"scope": 9524,
									"src": "530:75:22",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 4335,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "530:7:22",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30783030303030303030303030303030303030303030303030303030303030303030",
										"id": 4336,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "571:34:22",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_0_by_1",
											"typeString": "int_const 0"
										},
										"value": "0x00000000000000000000000000000000"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 4340,
									"mutability": "constant",
									"name": "NEGATIVE_ZERO",
									"nameLocation": "655:13:22",
									"nodeType": "VariableDeclaration",
									"scope": 9524,
									"src": "630:75:22",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 4338,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "630:7:22",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
										"id": 4339,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "671:34:22",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
											"typeString": "int_const 1701...(31 digits omitted)...5728"
										},
										"value": "0x80000000000000000000000000000000"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 4343,
									"mutability": "constant",
									"name": "POSITIVE_INFINITY",
									"nameLocation": "762:17:22",
									"nodeType": "VariableDeclaration",
									"scope": 9524,
									"src": "737:79:22",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 4341,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "737:7:22",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
										"id": 4342,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "782:34:22",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
											"typeString": "int_const 1701...(31 digits omitted)...5632"
										},
										"value": "0x7FFF0000000000000000000000000000"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 4346,
									"mutability": "constant",
									"name": "NEGATIVE_INFINITY",
									"nameLocation": "873:17:22",
									"nodeType": "VariableDeclaration",
									"scope": 9524,
									"src": "848:79:22",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 4344,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "848:7:22",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30784646464630303030303030303030303030303030303030303030303030303030",
										"id": 4345,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "893:34:22",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_340277174624079928635746076935438991360_by_1",
											"typeString": "int_const 3402...(31 digits omitted)...1360"
										},
										"value": "0xFFFF0000000000000000000000000000"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 4349,
									"mutability": "constant",
									"name": "NaN",
									"nameLocation": "994:3:22",
									"nodeType": "VariableDeclaration",
									"scope": 9524,
									"src": "969:65:22",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes16",
										"typeString": "bytes16"
									},
									"typeName": {
										"id": 4347,
										"name": "bytes16",
										"nodeType": "ElementaryTypeName",
										"src": "969:7:22",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes16",
											"typeString": "bytes16"
										}
									},
									"value": {
										"hexValue": "30783746464638303030303030303030303030303030303030303030303030303030",
										"id": 4348,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "1000:34:22",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_170138587312039964317873038467719495680_by_1",
											"typeString": "int_const 1701...(31 digits omitted)...5680"
										},
										"value": "0x7FFF8000000000000000000000000000"
									},
									"visibility": "private"
								},
								{
									"body": {
										"id": 4435,
										"nodeType": "Block",
										"src": "1276:518:22",
										"statements": [
											{
												"id": 4434,
												"nodeType": "UncheckedBlock",
												"src": "1282:508:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															},
															"id": 4359,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4357,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4352,
																"src": "1304:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 4358,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1309:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "1304:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4432,
															"nodeType": "Block",
															"src": "1343:441:22",
															"statements": [
																{
																	"assignments": [
																		4366
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4366,
																			"mutability": "mutable",
																			"name": "result",
																			"nameLocation": "1406:6:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4432,
																			"src": "1398:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4365,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "1398:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4377,
																	"initialValue": {
																		"arguments": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					},
																					"id": 4371,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4369,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4352,
																						"src": "1424:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 4370,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "1428:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "1424:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"id": 4374,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "UnaryOperation",
																					"operator": "-",
																					"prefix": true,
																					"src": "1436:2:22",
																					"subExpression": {
																						"id": 4373,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4352,
																						"src": "1437:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				},
																				"id": 4375,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "1424:14:22",
																				"trueExpression": {
																					"id": 4372,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4352,
																					"src": "1432:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			],
																			"id": 4368,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "1415:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_uint256_$",
																				"typeString": "type(uint256)"
																			},
																			"typeName": {
																				"id": 4367,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "1415:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4376,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1415:24:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "1398:41:22"
																},
																{
																	"assignments": [
																		4379
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4379,
																			"mutability": "mutable",
																			"name": "msb",
																			"nameLocation": "1458:3:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4432,
																			"src": "1450:11:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4378,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "1450:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4383,
																	"initialValue": {
																		"arguments": [
																			{
																				"id": 4381,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4366,
																				"src": "1484:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4380,
																			"name": "mostSignificantBit",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9523,
																			"src": "1464:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																				"typeString": "function (uint256) pure returns (uint256)"
																			}
																		},
																		"id": 4382,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1464:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "1450:41:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4386,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4384,
																			"name": "msb",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4379,
																			"src": "1505:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "313132",
																			"id": 4385,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1511:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_112_by_1",
																				"typeString": "int_const 112"
																			},
																			"value": "112"
																		},
																		"src": "1505:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4395,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4393,
																				"name": "msb",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4379,
																				"src": "1555:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "313132",
																				"id": 4394,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "1561:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_112_by_1",
																					"typeString": "int_const 112"
																				},
																				"value": "112"
																			},
																			"src": "1555:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 4402,
																		"nodeType": "IfStatement",
																		"src": "1551:35:22",
																		"trueBody": {
																			"expression": {
																				"id": 4400,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 4396,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4366,
																					"src": "1566:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4399,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4397,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4379,
																						"src": "1577:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "-",
																					"rightExpression": {
																						"hexValue": "313132",
																						"id": 4398,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "1583:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_112_by_1",
																							"typeString": "int_const 112"
																						},
																						"value": "112"
																					},
																					"src": "1577:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "1566:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 4401,
																			"nodeType": "ExpressionStatement",
																			"src": "1566:20:22"
																		}
																	},
																	"id": 4403,
																	"nodeType": "IfStatement",
																	"src": "1501:85:22",
																	"trueBody": {
																		"expression": {
																			"id": 4391,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4387,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4366,
																				"src": "1516:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4390,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"hexValue": "313132",
																					"id": 4388,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "1527:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "-",
																				"rightExpression": {
																					"id": 4389,
																					"name": "msb",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4379,
																					"src": "1533:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "1527:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "1516:20:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4392,
																		"nodeType": "ExpressionStatement",
																		"src": "1516:20:22"
																	}
																},
																{
																	"expression": {
																		"id": 4414,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4404,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4366,
																			"src": "1597:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4413,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4407,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4405,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4366,
																					"src": "1606:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 4406,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "1615:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "1606:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "|",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4412,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4410,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "3136333833",
																						"id": 4408,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "1648:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16383_by_1",
																							"typeString": "int_const 16383"
																						},
																						"value": "16383"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 4409,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4379,
																						"src": "1656:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "1648:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<<",
																				"rightExpression": {
																					"hexValue": "313132",
																					"id": 4411,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "1663:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"src": "1648:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "1606:60:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "1597:69:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4415,
																	"nodeType": "ExpressionStatement",
																	"src": "1597:69:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		},
																		"id": 4418,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4416,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4352,
																			"src": "1680:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 4417,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1684:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "1680:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"id": 4423,
																	"nodeType": "IfStatement",
																	"src": "1676:55:22",
																	"trueBody": {
																		"expression": {
																			"id": 4421,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4419,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4366,
																				"src": "1687:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "|=",
																			"rightHandSide": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 4420,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "1697:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"src": "1687:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4422,
																		"nodeType": "ExpressionStatement",
																		"src": "1687:44:22"
																	}
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"id": 4428,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4366,
																						"src": "1767:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					],
																					"id": 4427,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "1758:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 4426,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "1758:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 4429,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "1758:16:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			],
																			"id": 4425,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "1749:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes16_$",
																				"typeString": "type(bytes16)"
																			},
																			"typeName": {
																				"id": 4424,
																				"name": "bytes16",
																				"nodeType": "ElementaryTypeName",
																				"src": "1749:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4430,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "1749:26:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"functionReturnParameters": 4356,
																	"id": 4431,
																	"nodeType": "Return",
																	"src": "1742:33:22"
																}
															]
														},
														"id": 4433,
														"nodeType": "IfStatement",
														"src": "1300:484:22",
														"trueBody": {
															"expression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 4362,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "1328:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 4361,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "1319:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes16_$",
																		"typeString": "type(bytes16)"
																	},
																	"typeName": {
																		"id": 4360,
																		"name": "bytes16",
																		"nodeType": "ElementaryTypeName",
																		"src": "1319:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4363,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1319:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 4356,
															"id": 4364,
															"nodeType": "Return",
															"src": "1312:18:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4350,
										"nodeType": "StructuredDocumentation",
										"src": "1039:174:22",
										"text": " Convert signed 256-bit integer number into quadruple precision number.\n @param x signed 256-bit integer number\n @return quadruple precision number"
									},
									"id": 4436,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "fromInt",
									"nameLocation": "1225:7:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4353,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4352,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "1241:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4436,
												"src": "1234:8:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4351,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "1234:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1233:10:22"
									},
									"returnParameters": {
										"id": 4356,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4355,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4436,
												"src": "1267:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4354,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "1267:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1266:9:22"
									},
									"scope": 9524,
									"src": "1216:578:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4534,
										"nodeType": "Block",
										"src": "2081:815:22",
										"statements": [
											{
												"id": 4533,
												"nodeType": "UncheckedBlock",
												"src": "2087:805:22",
												"statements": [
													{
														"assignments": [
															4445
														],
														"declarations": [
															{
																"constant": false,
																"id": 4445,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "2113:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 4533,
																"src": "2105:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4444,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2105:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4454,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4453,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 4451,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 4448,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4439,
																			"src": "2133:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 4447,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2124:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 4446,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "2124:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4449,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2124:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 4450,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2139:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "2124:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 4452,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2145:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "2124:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "2105:46:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4458,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 4456,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4445,
																		"src": "2169:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "3136363338",
																		"id": 4457,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "2181:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16638_by_1",
																			"typeString": "int_const 16638"
																		},
																		"value": "16638"
																	},
																	"src": "2169:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 4455,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "2160:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 4459,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2160:27:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 4460,
														"nodeType": "ExpressionStatement",
														"src": "2160:27:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4463,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4461,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4445,
																"src": "2211:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136333833",
																"id": 4462,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2222:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16383_by_1",
																	"typeString": "int_const 16383"
																},
																"value": "16383"
															},
															"src": "2211:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4466,
														"nodeType": "IfStatement",
														"src": "2207:30:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 4464,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2236:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 4443,
															"id": 4465,
															"nodeType": "Return",
															"src": "2229:8:22"
														}
													},
													{
														"assignments": [
															4468
														],
														"declarations": [
															{
																"constant": false,
																"id": 4468,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "2267:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 4533,
																"src": "2259:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4467,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2259:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4480,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4479,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4477,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"arguments": [
																				{
																					"id": 4473,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4439,
																					"src": "2294:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 4472,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "2285:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 4471,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "2285:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4474,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "2285:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		],
																		"id": 4470,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2276:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint256_$",
																			"typeString": "type(uint256)"
																		},
																		"typeName": {
																			"id": 4469,
																			"name": "uint256",
																			"nodeType": "ElementaryTypeName",
																			"src": "2276:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4475,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2276:21:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																	"id": 4476,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2300:30:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																		"typeString": "int_const 5192...(26 digits omitted)...0095"
																	},
																	"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "2276:54:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "|",
															"rightExpression": {
																"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																"id": 4478,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2341:31:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0096"
																},
																"value": "0x10000000000000000000000000000"
															},
															"src": "2276:96:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "2259:113:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4483,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4481,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4445,
																"src": "2385:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136343935",
																"id": 4482,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2396:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16495_by_1",
																	"typeString": "int_const 16495"
																},
																"value": "16495"
															},
															"src": "2385:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4492,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4490,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4445,
																	"src": "2447:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "3136343935",
																	"id": 4491,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2458:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16495_by_1",
																		"typeString": "int_const 16495"
																	},
																	"value": "16495"
																},
																"src": "2447:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 4499,
															"nodeType": "IfStatement",
															"src": "2443:49:22",
															"trueBody": {
																"expression": {
																	"id": 4497,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftHandSide": {
																		"id": 4493,
																		"name": "result",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4468,
																		"src": "2465:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "Assignment",
																	"operator": "<<=",
																	"rightHandSide": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4496,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4494,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4445,
																			"src": "2476:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"hexValue": "3136343935",
																			"id": 4495,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "2487:5:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16495_by_1",
																				"typeString": "int_const 16495"
																			},
																			"value": "16495"
																		},
																		"src": "2476:16:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2465:27:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"id": 4498,
																"nodeType": "ExpressionStatement",
																"src": "2465:27:22"
															}
														},
														"id": 4500,
														"nodeType": "IfStatement",
														"src": "2381:111:22",
														"trueBody": {
															"expression": {
																"id": 4488,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 4484,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4468,
																	"src": "2403:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": ">>=",
																"rightHandSide": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4487,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"hexValue": "3136343935",
																		"id": 4485,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "2414:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16495_by_1",
																			"typeString": "int_const 16495"
																		},
																		"value": "16495"
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 4486,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4445,
																		"src": "2422:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2414:16:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "2403:27:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 4489,
															"nodeType": "ExpressionStatement",
															"src": "2403:27:22"
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4506,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 4503,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4439,
																		"src": "2514:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 4502,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "2505:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 4501,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "2505:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4504,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2505:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 4505,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2520:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "2505:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4531,
															"nodeType": "Block",
															"src": "2749:137:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4523,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4521,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4468,
																					"src": "2768:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "307837464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
																					"id": 4522,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "2778:66:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1",
																						"typeString": "int_const 5789...(69 digits omitted)...9967"
																					},
																					"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "2768:76:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 4520,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "2759:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 4524,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2759:86:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 4525,
																	"nodeType": "ExpressionStatement",
																	"src": "2759:86:22"
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"id": 4528,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4468,
																				"src": "2870:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4527,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "2862:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_int256_$",
																				"typeString": "type(int256)"
																			},
																			"typeName": {
																				"id": 4526,
																				"name": "int256",
																				"nodeType": "ElementaryTypeName",
																				"src": "2862:6:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4529,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2862:15:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"functionReturnParameters": 4443,
																	"id": 4530,
																	"nodeType": "Return",
																	"src": "2855:22:22"
																}
															]
														},
														"id": 4532,
														"nodeType": "IfStatement",
														"src": "2501:385:22",
														"trueBody": {
															"id": 4519,
															"nodeType": "Block",
															"src": "2556:187:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4510,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4508,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4468,
																					"src": "2587:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																					"id": 4509,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "2597:66:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
																						"typeString": "int_const 5789...(69 digits omitted)...9968"
																					},
																					"value": "0x8000000000000000000000000000000000000000000000000000000000000000"
																				},
																				"src": "2587:76:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 4507,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "2578:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 4511,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "2578:86:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 4512,
																	"nodeType": "ExpressionStatement",
																	"src": "2578:86:22"
																},
																{
																	"expression": {
																		"id": 4517,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "UnaryOperation",
																		"operator": "-",
																		"prefix": true,
																		"src": "2681:16:22",
																		"subExpression": {
																			"arguments": [
																				{
																					"id": 4515,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4468,
																					"src": "2690:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"id": 4514,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "2682:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_int256_$",
																					"typeString": "type(int256)"
																				},
																				"typeName": {
																					"id": 4513,
																					"name": "int256",
																					"nodeType": "ElementaryTypeName",
																					"src": "2682:6:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4516,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "2682:15:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"functionReturnParameters": 4443,
																	"id": 4518,
																	"nodeType": "Return",
																	"src": "2674:23:22"
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4437,
										"nodeType": "StructuredDocumentation",
										"src": "1798:222:22",
										"text": " Convert quadruple precision number into signed 256-bit integer number\n rounding towards zero.  Revert on overflow.\n @param x quadruple precision number\n @return signed 256-bit integer number"
									},
									"id": 4535,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toInt",
									"nameLocation": "2032:5:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4440,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4439,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "2047:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4535,
												"src": "2039:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4438,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "2039:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2038:11:22"
									},
									"returnParameters": {
										"id": 4443,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4442,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4535,
												"src": "2073:6:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4441,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "2073:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2072:8:22"
									},
									"scope": 9524,
									"src": "2023:873:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4604,
										"nodeType": "Block",
										"src": "3143:385:22",
										"statements": [
											{
												"id": 4603,
												"nodeType": "UncheckedBlock",
												"src": "3149:375:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4545,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4543,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4538,
																"src": "3171:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 4544,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "3176:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "3171:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4601,
															"nodeType": "Block",
															"src": "3210:308:22",
															"statements": [
																{
																	"assignments": [
																		4552
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4552,
																			"mutability": "mutable",
																			"name": "result",
																			"nameLocation": "3228:6:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4601,
																			"src": "3220:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4551,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "3220:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4554,
																	"initialValue": {
																		"id": 4553,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4538,
																		"src": "3237:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "3220:18:22"
																},
																{
																	"assignments": [
																		4556
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4556,
																			"mutability": "mutable",
																			"name": "msb",
																			"nameLocation": "3257:3:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4601,
																			"src": "3249:11:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4555,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "3249:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4560,
																	"initialValue": {
																		"arguments": [
																			{
																				"id": 4558,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4552,
																				"src": "3283:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4557,
																			"name": "mostSignificantBit",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9523,
																			"src": "3263:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																				"typeString": "function (uint256) pure returns (uint256)"
																			}
																		},
																		"id": 4559,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "3263:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "3249:41:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4563,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4561,
																			"name": "msb",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4556,
																			"src": "3304:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "313132",
																			"id": 4562,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "3310:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_112_by_1",
																				"typeString": "int_const 112"
																			},
																			"value": "112"
																		},
																		"src": "3304:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4572,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4570,
																				"name": "msb",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4556,
																				"src": "3354:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "313132",
																				"id": 4571,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "3360:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_112_by_1",
																					"typeString": "int_const 112"
																				},
																				"value": "112"
																			},
																			"src": "3354:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 4579,
																		"nodeType": "IfStatement",
																		"src": "3350:35:22",
																		"trueBody": {
																			"expression": {
																				"id": 4577,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 4573,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4552,
																					"src": "3365:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4576,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4574,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4556,
																						"src": "3376:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "-",
																					"rightExpression": {
																						"hexValue": "313132",
																						"id": 4575,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "3382:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_112_by_1",
																							"typeString": "int_const 112"
																						},
																						"value": "112"
																					},
																					"src": "3376:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "3365:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 4578,
																			"nodeType": "ExpressionStatement",
																			"src": "3365:20:22"
																		}
																	},
																	"id": 4580,
																	"nodeType": "IfStatement",
																	"src": "3300:85:22",
																	"trueBody": {
																		"expression": {
																			"id": 4568,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4564,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4552,
																				"src": "3315:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4567,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"hexValue": "313132",
																					"id": 4565,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "3326:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "-",
																				"rightExpression": {
																					"id": 4566,
																					"name": "msb",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4556,
																					"src": "3332:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "3326:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "3315:20:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4569,
																		"nodeType": "ExpressionStatement",
																		"src": "3315:20:22"
																	}
																},
																{
																	"expression": {
																		"id": 4591,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4581,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4552,
																			"src": "3396:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4590,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4584,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4582,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4552,
																					"src": "3405:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 4583,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "3414:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "3405:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "|",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4589,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4587,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "3136333833",
																						"id": 4585,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "3447:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16383_by_1",
																							"typeString": "int_const 16383"
																						},
																						"value": "16383"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 4586,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4556,
																						"src": "3455:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "3447:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<<",
																				"rightExpression": {
																					"hexValue": "313132",
																					"id": 4588,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "3462:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"src": "3447:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "3405:60:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "3396:69:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4592,
																	"nodeType": "ExpressionStatement",
																	"src": "3396:69:22"
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"id": 4597,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4552,
																						"src": "3501:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					],
																					"id": 4596,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "3492:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 4595,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "3492:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 4598,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "3492:16:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			],
																			"id": 4594,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "3483:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes16_$",
																				"typeString": "type(bytes16)"
																			},
																			"typeName": {
																				"id": 4593,
																				"name": "bytes16",
																				"nodeType": "ElementaryTypeName",
																				"src": "3483:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4599,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "3483:26:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"functionReturnParameters": 4542,
																	"id": 4600,
																	"nodeType": "Return",
																	"src": "3476:33:22"
																}
															]
														},
														"id": 4602,
														"nodeType": "IfStatement",
														"src": "3167:351:22",
														"trueBody": {
															"expression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 4548,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "3195:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 4547,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "3186:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes16_$",
																		"typeString": "type(bytes16)"
																	},
																	"typeName": {
																		"id": 4546,
																		"name": "bytes16",
																		"nodeType": "ElementaryTypeName",
																		"src": "3186:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4549,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3186:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 4542,
															"id": 4550,
															"nodeType": "Return",
															"src": "3179:18:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4536,
										"nodeType": "StructuredDocumentation",
										"src": "2900:178:22",
										"text": " Convert unsigned 256-bit integer number into quadruple precision number.\n @param x unsigned 256-bit integer number\n @return quadruple precision number"
									},
									"id": 4605,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "fromUInt",
									"nameLocation": "3090:8:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4539,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4538,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "3108:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4605,
												"src": "3100:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4537,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3100:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3099:11:22"
									},
									"returnParameters": {
										"id": 4542,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4541,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4605,
												"src": "3134:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4540,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "3134:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3133:9:22"
									},
									"scope": 9524,
									"src": "3081:447:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4682,
										"nodeType": "Block",
										"src": "3985:523:22",
										"statements": [
											{
												"id": 4681,
												"nodeType": "UncheckedBlock",
												"src": "3991:513:22",
												"statements": [
													{
														"assignments": [
															4614
														],
														"declarations": [
															{
																"constant": false,
																"id": 4614,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "4017:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 4681,
																"src": "4009:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4613,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "4009:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4623,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4622,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 4620,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 4617,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4608,
																			"src": "4037:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 4616,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "4028:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 4615,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "4028:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4618,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "4028:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 4619,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4043:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "4028:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 4621,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4049:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "4028:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "4009:46:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4626,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4624,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4614,
																"src": "4068:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136333833",
																"id": 4625,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4079:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16383_by_1",
																	"typeString": "int_const 16383"
																},
																"value": "16383"
															},
															"src": "4068:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4629,
														"nodeType": "IfStatement",
														"src": "4064:30:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 4627,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4093:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 4612,
															"id": 4628,
															"nodeType": "Return",
															"src": "4086:8:22"
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	},
																	"id": 4636,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"arguments": [
																			{
																				"id": 4633,
																				"name": "x",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4608,
																				"src": "4134:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			],
																			"id": 4632,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4125:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_uint128_$",
																				"typeString": "type(uint128)"
																			},
																			"typeName": {
																				"id": 4631,
																				"name": "uint128",
																				"nodeType": "ElementaryTypeName",
																				"src": "4125:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4634,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4125:11:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<",
																	"rightExpression": {
																		"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																		"id": 4635,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4139:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																			"typeString": "int_const 1701...(31 digits omitted)...5728"
																		},
																		"value": "0x80000000000000000000000000000000"
																	},
																	"src": "4125:48:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 4630,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "4116:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 4637,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4116:58:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 4638,
														"nodeType": "ExpressionStatement",
														"src": "4116:58:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4642,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 4640,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4614,
																		"src": "4204:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "3136363338",
																		"id": 4641,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4216:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16638_by_1",
																			"typeString": "int_const 16638"
																		},
																		"value": "16638"
																	},
																	"src": "4204:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 4639,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "4195:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 4643,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4195:27:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 4644,
														"nodeType": "ExpressionStatement",
														"src": "4195:27:22"
													},
													{
														"assignments": [
															4646
														],
														"declarations": [
															{
																"constant": false,
																"id": 4646,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "4250:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 4681,
																"src": "4242:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4645,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "4242:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4658,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4657,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4655,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"arguments": [
																				{
																					"id": 4651,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4608,
																					"src": "4277:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 4650,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "4268:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 4649,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "4268:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4652,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "4268:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		],
																		"id": 4648,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "4259:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint256_$",
																			"typeString": "type(uint256)"
																		},
																		"typeName": {
																			"id": 4647,
																			"name": "uint256",
																			"nodeType": "ElementaryTypeName",
																			"src": "4259:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4653,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "4259:21:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																	"id": 4654,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4283:30:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																		"typeString": "int_const 5192...(26 digits omitted)...0095"
																	},
																	"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "4259:54:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "|",
															"rightExpression": {
																"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																"id": 4656,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4324:31:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0096"
																},
																"value": "0x10000000000000000000000000000"
															},
															"src": "4259:96:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "4242:113:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4661,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4659,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4614,
																"src": "4368:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136343935",
																"id": 4660,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4379:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16495_by_1",
																	"typeString": "int_const 16495"
																},
																"value": "16495"
															},
															"src": "4368:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4670,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4668,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4614,
																	"src": "4430:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "3136343935",
																	"id": 4669,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4441:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16495_by_1",
																		"typeString": "int_const 16495"
																	},
																	"value": "16495"
																},
																"src": "4430:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 4677,
															"nodeType": "IfStatement",
															"src": "4426:49:22",
															"trueBody": {
																"expression": {
																	"id": 4675,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftHandSide": {
																		"id": 4671,
																		"name": "result",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4646,
																		"src": "4448:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "Assignment",
																	"operator": "<<=",
																	"rightHandSide": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4674,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4672,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4614,
																			"src": "4459:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"hexValue": "3136343935",
																			"id": 4673,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "4470:5:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16495_by_1",
																				"typeString": "int_const 16495"
																			},
																			"value": "16495"
																		},
																		"src": "4459:16:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "4448:27:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"id": 4676,
																"nodeType": "ExpressionStatement",
																"src": "4448:27:22"
															}
														},
														"id": 4678,
														"nodeType": "IfStatement",
														"src": "4364:111:22",
														"trueBody": {
															"expression": {
																"id": 4666,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 4662,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4646,
																	"src": "4386:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": ">>=",
																"rightHandSide": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4665,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"hexValue": "3136343935",
																		"id": 4663,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4397:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16495_by_1",
																			"typeString": "int_const 16495"
																		},
																		"value": "16495"
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 4664,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4614,
																		"src": "4405:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "4397:16:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "4386:27:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 4667,
															"nodeType": "ExpressionStatement",
															"src": "4386:27:22"
														}
													},
													{
														"expression": {
															"id": 4679,
															"name": "result",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4646,
															"src": "4491:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 4612,
														"id": 4680,
														"nodeType": "Return",
														"src": "4484:13:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4606,
										"nodeType": "StructuredDocumentation",
										"src": "3532:390:22",
										"text": " Convert quadruple precision number into unsigned 256-bit integer number\n rounding towards zero.  Revert on underflow.  Note, that negative floating\n point numbers in range (-1.0 .. 0.0) may be converted to unsigned integer\n without error, because they are rounded to zero.\n @param x quadruple precision number\n @return unsigned 256-bit integer number"
									},
									"id": 4683,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toUInt",
									"nameLocation": "3934:6:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4609,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4608,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "3950:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4683,
												"src": "3942:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4607,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "3942:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3941:11:22"
									},
									"returnParameters": {
										"id": 4612,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4611,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4683,
												"src": "3976:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4610,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3976:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3975:9:22"
									},
									"scope": 9524,
									"src": "3925:583:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4769,
										"nodeType": "Block",
										"src": "4774:518:22",
										"statements": [
											{
												"id": 4768,
												"nodeType": "UncheckedBlock",
												"src": "4780:508:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															},
															"id": 4693,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4691,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4686,
																"src": "4802:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 4692,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4807:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "4802:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4766,
															"nodeType": "Block",
															"src": "4841:441:22",
															"statements": [
																{
																	"assignments": [
																		4700
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4700,
																			"mutability": "mutable",
																			"name": "result",
																			"nameLocation": "4904:6:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4766,
																			"src": "4896:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4699,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "4896:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4711,
																	"initialValue": {
																		"arguments": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					},
																					"id": 4705,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4703,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4686,
																						"src": "4922:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 4704,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "4926:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "4922:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"id": 4708,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "UnaryOperation",
																					"operator": "-",
																					"prefix": true,
																					"src": "4934:2:22",
																					"subExpression": {
																						"id": 4707,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4686,
																						"src": "4935:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int256",
																							"typeString": "int256"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				},
																				"id": 4709,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "4922:14:22",
																				"trueExpression": {
																					"id": 4706,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4686,
																					"src": "4930:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			],
																			"id": 4702,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "4913:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_uint256_$",
																				"typeString": "type(uint256)"
																			},
																			"typeName": {
																				"id": 4701,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "4913:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4710,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4913:24:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "4896:41:22"
																},
																{
																	"assignments": [
																		4713
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4713,
																			"mutability": "mutable",
																			"name": "msb",
																			"nameLocation": "4956:3:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4766,
																			"src": "4948:11:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4712,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "4948:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4717,
																	"initialValue": {
																		"arguments": [
																			{
																				"id": 4715,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4700,
																				"src": "4982:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4714,
																			"name": "mostSignificantBit",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9523,
																			"src": "4962:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																				"typeString": "function (uint256) pure returns (uint256)"
																			}
																		},
																		"id": 4716,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4962:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "4948:41:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4720,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4718,
																			"name": "msb",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4713,
																			"src": "5003:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "313132",
																			"id": 4719,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "5009:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_112_by_1",
																				"typeString": "int_const 112"
																			},
																			"value": "112"
																		},
																		"src": "5003:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4729,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4727,
																				"name": "msb",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4713,
																				"src": "5053:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "313132",
																				"id": 4728,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "5059:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_112_by_1",
																					"typeString": "int_const 112"
																				},
																				"value": "112"
																			},
																			"src": "5053:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 4736,
																		"nodeType": "IfStatement",
																		"src": "5049:35:22",
																		"trueBody": {
																			"expression": {
																				"id": 4734,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 4730,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4700,
																					"src": "5064:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4733,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4731,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4713,
																						"src": "5075:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "-",
																					"rightExpression": {
																						"hexValue": "313132",
																						"id": 4732,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "5081:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_112_by_1",
																							"typeString": "int_const 112"
																						},
																						"value": "112"
																					},
																					"src": "5075:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "5064:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 4735,
																			"nodeType": "ExpressionStatement",
																			"src": "5064:20:22"
																		}
																	},
																	"id": 4737,
																	"nodeType": "IfStatement",
																	"src": "4999:85:22",
																	"trueBody": {
																		"expression": {
																			"id": 4725,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4721,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4700,
																				"src": "5014:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4724,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"hexValue": "313132",
																					"id": 4722,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "5025:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "-",
																				"rightExpression": {
																					"id": 4723,
																					"name": "msb",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4713,
																					"src": "5031:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "5025:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "5014:20:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4726,
																		"nodeType": "ExpressionStatement",
																		"src": "5014:20:22"
																	}
																},
																{
																	"expression": {
																		"id": 4748,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4738,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4700,
																			"src": "5095:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4747,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4741,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4739,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4700,
																					"src": "5104:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 4740,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "5113:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "5104:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "|",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4746,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4744,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "3136323535",
																						"id": 4742,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "5146:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16255_by_1",
																							"typeString": "int_const 16255"
																						},
																						"value": "16255"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 4743,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4713,
																						"src": "5154:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "5146:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<<",
																				"rightExpression": {
																					"hexValue": "313132",
																					"id": 4745,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "5161:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"src": "5146:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "5104:60:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "5095:69:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4749,
																	"nodeType": "ExpressionStatement",
																	"src": "5095:69:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		},
																		"id": 4752,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4750,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4686,
																			"src": "5178:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 4751,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "5182:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "5178:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"id": 4757,
																	"nodeType": "IfStatement",
																	"src": "5174:55:22",
																	"trueBody": {
																		"expression": {
																			"id": 4755,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4753,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4700,
																				"src": "5185:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "|=",
																			"rightHandSide": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 4754,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "5195:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"src": "5185:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4756,
																		"nodeType": "ExpressionStatement",
																		"src": "5185:44:22"
																	}
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"id": 4762,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4700,
																						"src": "5265:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					],
																					"id": 4761,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "5256:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 4760,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "5256:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 4763,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "5256:16:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			],
																			"id": 4759,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "5247:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes16_$",
																				"typeString": "type(bytes16)"
																			},
																			"typeName": {
																				"id": 4758,
																				"name": "bytes16",
																				"nodeType": "ElementaryTypeName",
																				"src": "5247:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4764,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "5247:26:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"functionReturnParameters": 4690,
																	"id": 4765,
																	"nodeType": "Return",
																	"src": "5240:33:22"
																}
															]
														},
														"id": 4767,
														"nodeType": "IfStatement",
														"src": "4798:484:22",
														"trueBody": {
															"expression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 4696,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4826:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 4695,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "4817:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes16_$",
																		"typeString": "type(bytes16)"
																	},
																	"typeName": {
																		"id": 4694,
																		"name": "bytes16",
																		"nodeType": "ElementaryTypeName",
																		"src": "4817:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4697,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4817:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 4690,
															"id": 4698,
															"nodeType": "Return",
															"src": "4810:18:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4684,
										"nodeType": "StructuredDocumentation",
										"src": "4512:195:22",
										"text": " Convert signed 128.128 bit fixed point number into quadruple precision\n number.\n @param x signed 128.128 bit fixed point number\n @return quadruple precision number"
									},
									"id": 4770,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "from128x128",
									"nameLocation": "4719:11:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4687,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4686,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "4739:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4770,
												"src": "4732:8:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4685,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "4732:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4731:10:22"
									},
									"returnParameters": {
										"id": 4690,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4689,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4770,
												"src": "4765:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4688,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "4765:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4764:9:22"
									},
									"scope": 9524,
									"src": "4710:582:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4868,
										"nodeType": "Block",
										"src": "5577:815:22",
										"statements": [
											{
												"id": 4867,
												"nodeType": "UncheckedBlock",
												"src": "5583:805:22",
												"statements": [
													{
														"assignments": [
															4779
														],
														"declarations": [
															{
																"constant": false,
																"id": 4779,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "5609:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 4867,
																"src": "5601:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4778,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "5601:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4788,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4787,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 4785,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 4782,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4773,
																			"src": "5629:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 4781,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "5620:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 4780,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "5620:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4783,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "5620:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 4784,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5635:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "5620:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 4786,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5641:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "5620:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "5601:46:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4792,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 4790,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4779,
																		"src": "5665:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "3136353130",
																		"id": 4791,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "5677:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16510_by_1",
																			"typeString": "int_const 16510"
																		},
																		"value": "16510"
																	},
																	"src": "5665:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 4789,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "5656:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 4793,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5656:27:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 4794,
														"nodeType": "ExpressionStatement",
														"src": "5656:27:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4797,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4795,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4779,
																"src": "5707:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136323535",
																"id": 4796,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5718:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16255_by_1",
																	"typeString": "int_const 16255"
																},
																"value": "16255"
															},
															"src": "5707:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4800,
														"nodeType": "IfStatement",
														"src": "5703:30:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 4798,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5732:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 4777,
															"id": 4799,
															"nodeType": "Return",
															"src": "5725:8:22"
														}
													},
													{
														"assignments": [
															4802
														],
														"declarations": [
															{
																"constant": false,
																"id": 4802,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "5763:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 4867,
																"src": "5755:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4801,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "5755:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4814,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4813,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4811,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"arguments": [
																				{
																					"id": 4807,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4773,
																					"src": "5790:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 4806,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "5781:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 4805,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "5781:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4808,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "5781:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		],
																		"id": 4804,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "5772:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint256_$",
																			"typeString": "type(uint256)"
																		},
																		"typeName": {
																			"id": 4803,
																			"name": "uint256",
																			"nodeType": "ElementaryTypeName",
																			"src": "5772:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4809,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "5772:21:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																	"id": 4810,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5796:30:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																		"typeString": "int_const 5192...(26 digits omitted)...0095"
																	},
																	"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "5772:54:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "|",
															"rightExpression": {
																"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																"id": 4812,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5837:31:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0096"
																},
																"value": "0x10000000000000000000000000000"
															},
															"src": "5772:96:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "5755:113:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4817,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4815,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4779,
																"src": "5881:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136333637",
																"id": 4816,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5892:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16367_by_1",
																	"typeString": "int_const 16367"
																},
																"value": "16367"
															},
															"src": "5881:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4826,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 4824,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4779,
																	"src": "5943:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "3136333637",
																	"id": 4825,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5954:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16367_by_1",
																		"typeString": "int_const 16367"
																	},
																	"value": "16367"
																},
																"src": "5943:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 4833,
															"nodeType": "IfStatement",
															"src": "5939:49:22",
															"trueBody": {
																"expression": {
																	"id": 4831,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftHandSide": {
																		"id": 4827,
																		"name": "result",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4802,
																		"src": "5961:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "Assignment",
																	"operator": "<<=",
																	"rightHandSide": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4830,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4828,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4779,
																			"src": "5972:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"hexValue": "3136333637",
																			"id": 4829,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "5983:5:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16367_by_1",
																				"typeString": "int_const 16367"
																			},
																			"value": "16367"
																		},
																		"src": "5972:16:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "5961:27:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"id": 4832,
																"nodeType": "ExpressionStatement",
																"src": "5961:27:22"
															}
														},
														"id": 4834,
														"nodeType": "IfStatement",
														"src": "5877:111:22",
														"trueBody": {
															"expression": {
																"id": 4822,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 4818,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4802,
																	"src": "5899:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": ">>=",
																"rightHandSide": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4821,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"hexValue": "3136333637",
																		"id": 4819,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "5910:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16367_by_1",
																			"typeString": "int_const 16367"
																		},
																		"value": "16367"
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 4820,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4779,
																		"src": "5918:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "5910:16:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "5899:27:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 4823,
															"nodeType": "ExpressionStatement",
															"src": "5899:27:22"
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4840,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 4837,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4773,
																		"src": "6010:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 4836,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "6001:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 4835,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "6001:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4838,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6001:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 4839,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6016:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "6001:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4865,
															"nodeType": "Block",
															"src": "6245:137:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4857,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4855,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4802,
																					"src": "6264:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "307837464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
																					"id": 4856,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "6274:66:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1",
																						"typeString": "int_const 5789...(69 digits omitted)...9967"
																					},
																					"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "6264:76:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 4854,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "6255:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 4858,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6255:86:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 4859,
																	"nodeType": "ExpressionStatement",
																	"src": "6255:86:22"
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"id": 4862,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4802,
																				"src": "6366:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4861,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "6358:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_int256_$",
																				"typeString": "type(int256)"
																			},
																			"typeName": {
																				"id": 4860,
																				"name": "int256",
																				"nodeType": "ElementaryTypeName",
																				"src": "6358:6:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4863,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6358:15:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"functionReturnParameters": 4777,
																	"id": 4864,
																	"nodeType": "Return",
																	"src": "6351:22:22"
																}
															]
														},
														"id": 4866,
														"nodeType": "IfStatement",
														"src": "5997:385:22",
														"trueBody": {
															"id": 4853,
															"nodeType": "Block",
															"src": "6052:187:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4844,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4842,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4802,
																					"src": "6083:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																					"id": 4843,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "6093:66:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
																						"typeString": "int_const 5789...(69 digits omitted)...9968"
																					},
																					"value": "0x8000000000000000000000000000000000000000000000000000000000000000"
																				},
																				"src": "6083:76:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 4841,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "6074:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 4845,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6074:86:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 4846,
																	"nodeType": "ExpressionStatement",
																	"src": "6074:86:22"
																},
																{
																	"expression": {
																		"id": 4851,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "UnaryOperation",
																		"operator": "-",
																		"prefix": true,
																		"src": "6177:16:22",
																		"subExpression": {
																			"arguments": [
																				{
																					"id": 4849,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4802,
																					"src": "6186:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"id": 4848,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "6178:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_int256_$",
																					"typeString": "type(int256)"
																				},
																				"typeName": {
																					"id": 4847,
																					"name": "int256",
																					"nodeType": "ElementaryTypeName",
																					"src": "6178:6:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4850,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "6178:15:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_int256",
																				"typeString": "int256"
																			}
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_int256",
																			"typeString": "int256"
																		}
																	},
																	"functionReturnParameters": 4777,
																	"id": 4852,
																	"nodeType": "Return",
																	"src": "6170:23:22"
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4771,
										"nodeType": "StructuredDocumentation",
										"src": "5296:216:22",
										"text": " Convert quadruple precision number into signed 128.128 bit fixed point\n number.  Revert on overflow.\n @param x quadruple precision number\n @return signed 128.128 bit fixed point number"
									},
									"id": 4869,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "to128x128",
									"nameLocation": "5524:9:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4774,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4773,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "5543:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4869,
												"src": "5535:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4772,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "5535:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5534:11:22"
									},
									"returnParameters": {
										"id": 4777,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4776,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4869,
												"src": "5569:6:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 4775,
													"name": "int256",
													"nodeType": "ElementaryTypeName",
													"src": "5569:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5568:8:22"
									},
									"scope": 9524,
									"src": "5515:877:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4955,
										"nodeType": "Block",
										"src": "6652:518:22",
										"statements": [
											{
												"id": 4954,
												"nodeType": "UncheckedBlock",
												"src": "6658:508:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_int128",
																"typeString": "int128"
															},
															"id": 4879,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4877,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4872,
																"src": "6680:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_int128",
																	"typeString": "int128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 4878,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "6685:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "6680:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 4952,
															"nodeType": "Block",
															"src": "6719:441:22",
															"statements": [
																{
																	"assignments": [
																		4886
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4886,
																			"mutability": "mutable",
																			"name": "result",
																			"nameLocation": "6782:6:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4952,
																			"src": "6774:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4885,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "6774:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4897,
																	"initialValue": {
																		"arguments": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_int128",
																						"typeString": "int128"
																					},
																					"id": 4891,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4889,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4872,
																						"src": "6800:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int128",
																							"typeString": "int128"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 4890,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "6804:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "6800:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"id": 4894,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "UnaryOperation",
																					"operator": "-",
																					"prefix": true,
																					"src": "6812:2:22",
																					"subExpression": {
																						"id": 4893,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4872,
																						"src": "6813:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_int128",
																							"typeString": "int128"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_int128",
																						"typeString": "int128"
																					}
																				},
																				"id": 4895,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "6800:14:22",
																				"trueExpression": {
																					"id": 4892,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4872,
																					"src": "6808:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_int128",
																						"typeString": "int128"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_int128",
																					"typeString": "int128"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_int128",
																					"typeString": "int128"
																				}
																			],
																			"id": 4888,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "6791:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_uint128_$",
																				"typeString": "type(uint128)"
																			},
																			"typeName": {
																				"id": 4887,
																				"name": "uint128",
																				"nodeType": "ElementaryTypeName",
																				"src": "6791:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4896,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6791:24:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "6774:41:22"
																},
																{
																	"assignments": [
																		4899
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 4899,
																			"mutability": "mutable",
																			"name": "msb",
																			"nameLocation": "6834:3:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 4952,
																			"src": "6826:11:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 4898,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "6826:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 4903,
																	"initialValue": {
																		"arguments": [
																			{
																				"id": 4901,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4886,
																				"src": "6860:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			],
																			"id": 4900,
																			"name": "mostSignificantBit",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9523,
																			"src": "6840:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																				"typeString": "function (uint256) pure returns (uint256)"
																			}
																		},
																		"id": 4902,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6840:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "6826:41:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 4906,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4904,
																			"name": "msb",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4899,
																			"src": "6881:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "313132",
																			"id": 4905,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "6887:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_112_by_1",
																				"typeString": "int_const 112"
																			},
																			"value": "112"
																		},
																		"src": "6881:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4915,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 4913,
																				"name": "msb",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4899,
																				"src": "6931:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "313132",
																				"id": 4914,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "6937:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_112_by_1",
																					"typeString": "int_const 112"
																				},
																				"value": "112"
																			},
																			"src": "6931:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 4922,
																		"nodeType": "IfStatement",
																		"src": "6927:35:22",
																		"trueBody": {
																			"expression": {
																				"id": 4920,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 4916,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4886,
																					"src": "6942:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4919,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 4917,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4899,
																						"src": "6953:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "-",
																					"rightExpression": {
																						"hexValue": "313132",
																						"id": 4918,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "6959:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_112_by_1",
																							"typeString": "int_const 112"
																						},
																						"value": "112"
																					},
																					"src": "6953:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "6942:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 4921,
																			"nodeType": "ExpressionStatement",
																			"src": "6942:20:22"
																		}
																	},
																	"id": 4923,
																	"nodeType": "IfStatement",
																	"src": "6877:85:22",
																	"trueBody": {
																		"expression": {
																			"id": 4911,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4907,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4886,
																				"src": "6892:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4910,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"hexValue": "313132",
																					"id": 4908,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "6903:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "-",
																				"rightExpression": {
																					"id": 4909,
																					"name": "msb",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4899,
																					"src": "6909:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "6903:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "6892:20:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4912,
																		"nodeType": "ExpressionStatement",
																		"src": "6892:20:22"
																	}
																},
																{
																	"expression": {
																		"id": 4934,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 4924,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4886,
																			"src": "6973:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "=",
																		"rightHandSide": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 4933,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4927,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 4925,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4886,
																					"src": "6982:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 4926,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "6991:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "6982:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "|",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 4932,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 4930,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"hexValue": "3136333139",
																						"id": 4928,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "7024:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16319_by_1",
																							"typeString": "int_const 16319"
																						},
																						"value": "16319"
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 4929,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4899,
																						"src": "7032:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "7024:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<<",
																				"rightExpression": {
																					"hexValue": "313132",
																					"id": 4931,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "7039:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"src": "7024:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "6982:60:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "6973:69:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 4935,
																	"nodeType": "ExpressionStatement",
																	"src": "6973:69:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_int128",
																			"typeString": "int128"
																		},
																		"id": 4938,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 4936,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4872,
																			"src": "7056:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_int128",
																				"typeString": "int128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 4937,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "7060:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "7056:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"id": 4943,
																	"nodeType": "IfStatement",
																	"src": "7052:55:22",
																	"trueBody": {
																		"expression": {
																			"id": 4941,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 4939,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4886,
																				"src": "7063:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "|=",
																			"rightHandSide": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 4940,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "7073:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"src": "7063:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 4942,
																		"nodeType": "ExpressionStatement",
																		"src": "7063:44:22"
																	}
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"id": 4948,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4886,
																						"src": "7143:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					],
																					"id": 4947,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "7134:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 4946,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "7134:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 4949,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "7134:16:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			],
																			"id": 4945,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "7125:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes16_$",
																				"typeString": "type(bytes16)"
																			},
																			"typeName": {
																				"id": 4944,
																				"name": "bytes16",
																				"nodeType": "ElementaryTypeName",
																				"src": "7125:7:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 4950,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "7125:26:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"functionReturnParameters": 4876,
																	"id": 4951,
																	"nodeType": "Return",
																	"src": "7118:33:22"
																}
															]
														},
														"id": 4953,
														"nodeType": "IfStatement",
														"src": "6676:484:22",
														"trueBody": {
															"expression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 4882,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "6704:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 4881,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "6695:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_bytes16_$",
																		"typeString": "type(bytes16)"
																	},
																	"typeName": {
																		"id": 4880,
																		"name": "bytes16",
																		"nodeType": "ElementaryTypeName",
																		"src": "6695:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 4883,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6695:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 4876,
															"id": 4884,
															"nodeType": "Return",
															"src": "6688:18:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4870,
										"nodeType": "StructuredDocumentation",
										"src": "6396:191:22",
										"text": " Convert signed 64.64 bit fixed point number into quadruple precision\n number.\n @param x signed 64.64 bit fixed point number\n @return quadruple precision number"
									},
									"id": 4956,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "from64x64",
									"nameLocation": "6599:9:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4873,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4872,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "6617:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 4956,
												"src": "6610:8:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int128",
													"typeString": "int128"
												},
												"typeName": {
													"id": 4871,
													"name": "int128",
													"nodeType": "ElementaryTypeName",
													"src": "6610:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int128",
														"typeString": "int128"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6609:10:22"
									},
									"returnParameters": {
										"id": 4876,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4875,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 4956,
												"src": "6643:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4874,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "6643:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6642:9:22"
									},
									"scope": 9524,
									"src": "6590:580:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5060,
										"nodeType": "Block",
										"src": "7449:769:22",
										"statements": [
											{
												"id": 5059,
												"nodeType": "UncheckedBlock",
												"src": "7455:759:22",
												"statements": [
													{
														"assignments": [
															4965
														],
														"declarations": [
															{
																"constant": false,
																"id": 4965,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "7481:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5059,
																"src": "7473:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4964,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "7473:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 4974,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 4973,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 4971,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 4968,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4959,
																			"src": "7501:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 4967,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "7492:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 4966,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "7492:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4969,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "7492:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 4970,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7507:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "7492:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 4972,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7513:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "7492:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "7473:46:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 4978,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 4976,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4965,
																		"src": "7537:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "3136343436",
																		"id": 4977,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "7549:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16446_by_1",
																			"typeString": "int_const 16446"
																		},
																		"value": "16446"
																	},
																	"src": "7537:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 4975,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "7528:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 4979,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7528:27:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 4980,
														"nodeType": "ExpressionStatement",
														"src": "7528:27:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4983,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 4981,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4965,
																"src": "7579:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136333139",
																"id": 4982,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7590:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16319_by_1",
																	"typeString": "int_const 16319"
																},
																"value": "16319"
															},
															"src": "7579:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 4986,
														"nodeType": "IfStatement",
														"src": "7575:30:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 4984,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7604:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 4963,
															"id": 4985,
															"nodeType": "Return",
															"src": "7597:8:22"
														}
													},
													{
														"assignments": [
															4988
														],
														"declarations": [
															{
																"constant": false,
																"id": 4988,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "7635:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 5059,
																"src": "7627:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 4987,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "7627:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5000,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 4999,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 4997,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"arguments": [
																				{
																					"id": 4993,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4959,
																					"src": "7662:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 4992,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "7653:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 4991,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "7653:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 4994,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "7653:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		],
																		"id": 4990,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "7644:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint256_$",
																			"typeString": "type(uint256)"
																		},
																		"typeName": {
																			"id": 4989,
																			"name": "uint256",
																			"nodeType": "ElementaryTypeName",
																			"src": "7644:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 4995,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "7644:21:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																	"id": 4996,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7668:30:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																		"typeString": "int_const 5192...(26 digits omitted)...0095"
																	},
																	"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "7644:54:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "|",
															"rightExpression": {
																"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																"id": 4998,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7709:31:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0096"
																},
																"value": "0x10000000000000000000000000000"
															},
															"src": "7644:96:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "7627:113:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5003,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5001,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4965,
																"src": "7753:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<",
															"rightExpression": {
																"hexValue": "3136343331",
																"id": 5002,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7764:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16431_by_1",
																	"typeString": "int_const 16431"
																},
																"value": "16431"
															},
															"src": "7753:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5012,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5010,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4965,
																	"src": "7815:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "3136343331",
																	"id": 5011,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7826:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16431_by_1",
																		"typeString": "int_const 16431"
																	},
																	"value": "16431"
																},
																"src": "7815:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 5019,
															"nodeType": "IfStatement",
															"src": "7811:49:22",
															"trueBody": {
																"expression": {
																	"id": 5017,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftHandSide": {
																		"id": 5013,
																		"name": "result",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4988,
																		"src": "7833:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "Assignment",
																	"operator": "<<=",
																	"rightHandSide": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5016,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5014,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4965,
																			"src": "7844:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "-",
																		"rightExpression": {
																			"hexValue": "3136343331",
																			"id": 5015,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "7855:5:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16431_by_1",
																				"typeString": "int_const 16431"
																			},
																			"value": "16431"
																		},
																		"src": "7844:16:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7833:27:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"id": 5018,
																"nodeType": "ExpressionStatement",
																"src": "7833:27:22"
															}
														},
														"id": 5020,
														"nodeType": "IfStatement",
														"src": "7749:111:22",
														"trueBody": {
															"expression": {
																"id": 5008,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5004,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4988,
																	"src": "7771:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": ">>=",
																"rightHandSide": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 5007,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"hexValue": "3136343331",
																		"id": 5005,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "7782:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16431_by_1",
																			"typeString": "int_const 16431"
																		},
																		"value": "16431"
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "-",
																	"rightExpression": {
																		"id": 5006,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4965,
																		"src": "7790:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "7782:16:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "7771:27:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 5009,
															"nodeType": "ExpressionStatement",
															"src": "7771:27:22"
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5026,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5023,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4959,
																		"src": "7882:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5022,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "7873:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5021,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "7873:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5024,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "7873:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 5025,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7888:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "7873:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 5057,
															"nodeType": "Block",
															"src": "8094:114:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 5046,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 5044,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4988,
																					"src": "8113:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																					"id": 5045,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "8123:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																						"typeString": "int_const 1701...(31 digits omitted)...5727"
																					},
																					"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "8113:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 5043,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "8104:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 5047,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "8104:54:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 5048,
																	"nodeType": "ExpressionStatement",
																	"src": "8104:54:22"
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"id": 5053,
																						"name": "result",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4988,
																						"src": "8191:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					],
																					"id": 5052,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "8183:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_int256_$",
																						"typeString": "type(int256)"
																					},
																					"typeName": {
																						"id": 5051,
																						"name": "int256",
																						"nodeType": "ElementaryTypeName",
																						"src": "8183:6:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5054,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "8183:15:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_int256",
																					"typeString": "int256"
																				}
																			],
																			"id": 5050,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "8175:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_int128_$",
																				"typeString": "type(int128)"
																			},
																			"typeName": {
																				"id": 5049,
																				"name": "int128",
																				"nodeType": "ElementaryTypeName",
																				"src": "8175:6:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 5055,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "8175:24:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_int128",
																			"typeString": "int128"
																		}
																	},
																	"functionReturnParameters": 4963,
																	"id": 5056,
																	"nodeType": "Return",
																	"src": "8168:31:22"
																}
															]
														},
														"id": 5058,
														"nodeType": "IfStatement",
														"src": "7869:339:22",
														"trueBody": {
															"id": 5042,
															"nodeType": "Block",
															"src": "7924:164:22",
															"statements": [
																{
																	"expression": {
																		"arguments": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 5030,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 5028,
																					"name": "result",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4988,
																					"src": "7955:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<=",
																				"rightExpression": {
																					"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																					"id": 5029,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "7965:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																						"typeString": "int_const 1701...(31 digits omitted)...5728"
																					},
																					"value": "0x80000000000000000000000000000000"
																				},
																				"src": "7955:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			],
																			"id": 5027,
																			"name": "require",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [
																				4294967278,
																				4294967278
																			],
																			"referencedDeclaration": 4294967278,
																			"src": "7946:7:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																				"typeString": "function (bool) pure"
																			}
																		},
																		"id": 5031,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "7946:54:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_tuple$__$",
																			"typeString": "tuple()"
																		}
																	},
																	"id": 5032,
																	"nodeType": "ExpressionStatement",
																	"src": "7946:54:22"
																},
																{
																	"expression": {
																		"id": 5040,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "UnaryOperation",
																		"operator": "-",
																		"prefix": true,
																		"src": "8017:25:22",
																		"subExpression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"id": 5037,
																							"name": "result",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 4988,
																							"src": "8034:6:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						],
																						"id": 5036,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "8026:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_int256_$",
																							"typeString": "type(int256)"
																						},
																						"typeName": {
																							"id": 5035,
																							"name": "int256",
																							"nodeType": "ElementaryTypeName",
																							"src": "8026:6:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 5038,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "8026:15:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_int256",
																						"typeString": "int256"
																					}
																				],
																				"id": 5034,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "8018:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_int128_$",
																					"typeString": "type(int128)"
																				},
																				"typeName": {
																					"id": 5033,
																					"name": "int128",
																					"nodeType": "ElementaryTypeName",
																					"src": "8018:6:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 5039,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "8018:24:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_int128",
																				"typeString": "int128"
																			}
																		},
																		"typeDescriptions": {
																			"typeIdentifier": "t_int128",
																			"typeString": "int128"
																		}
																	},
																	"functionReturnParameters": 4963,
																	"id": 5041,
																	"nodeType": "Return",
																	"src": "8010:32:22"
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 4957,
										"nodeType": "StructuredDocumentation",
										"src": "7174:212:22",
										"text": " Convert quadruple precision number into signed 64.64 bit fixed point\n number.  Revert on overflow.\n @param x quadruple precision number\n @return signed 64.64 bit fixed point number"
									},
									"id": 5061,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "to64x64",
									"nameLocation": "7398:7:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4960,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4959,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "7415:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5061,
												"src": "7407:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 4958,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "7407:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7406:11:22"
									},
									"returnParameters": {
										"id": 4963,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4962,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5061,
												"src": "7441:6:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int128",
													"typeString": "int128"
												},
												"typeName": {
													"id": 4961,
													"name": "int128",
													"nodeType": "ElementaryTypeName",
													"src": "7441:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int128",
														"typeString": "int128"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7440:8:22"
									},
									"scope": 9524,
									"src": "7389:829:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5183,
										"nodeType": "Block",
										"src": "8454:1049:22",
										"statements": [
											{
												"id": 5182,
												"nodeType": "UncheckedBlock",
												"src": "8460:1039:22",
												"statements": [
													{
														"assignments": [
															5070
														],
														"declarations": [
															{
																"constant": false,
																"id": 5070,
																"mutability": "mutable",
																"name": "negative",
																"nameLocation": "8483:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5182,
																"src": "8478:13:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"typeName": {
																	"id": 5069,
																	"name": "bool",
																	"nodeType": "ElementaryTypeName",
																	"src": "8478:4:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5076,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															"id": 5075,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																},
																"id": 5073,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5071,
																	"name": "x",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5064,
																	"src": "8494:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes32",
																		"typeString": "bytes32"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																	"id": 5072,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8498:66:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
																		"typeString": "int_const 5789...(69 digits omitted)...9968"
																	},
																	"value": "0x8000000000000000000000000000000000000000000000000000000000000000"
																},
																"src": "8494:70:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 5074,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8567:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "8494:74:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "8478:90:22"
													},
													{
														"assignments": [
															5078
														],
														"declarations": [
															{
																"constant": false,
																"id": 5078,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "8585:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5182,
																"src": "8577:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5077,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "8577:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5087,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5086,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5084,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5081,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5064,
																			"src": "8605:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes32",
																				"typeString": "bytes32"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes32",
																				"typeString": "bytes32"
																			}
																		],
																		"id": 5080,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "8596:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint256_$",
																			"typeString": "type(uint256)"
																		},
																		"typeName": {
																			"id": 5079,
																			"name": "uint256",
																			"nodeType": "ElementaryTypeName",
																			"src": "8596:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5082,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "8596:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "323336",
																	"id": 5083,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8611:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_236_by_1",
																		"typeString": "int_const 236"
																	},
																	"value": "236"
																},
																"src": "8596:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30783746464646",
																"id": 5085,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8617:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_524287_by_1",
																	"typeString": "int_const 524287"
																},
																"value": "0x7FFFF"
															},
															"src": "8596:28:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "8577:47:22"
													},
													{
														"assignments": [
															5089
														],
														"declarations": [
															{
																"constant": false,
																"id": 5089,
																"mutability": "mutable",
																"name": "significand",
																"nameLocation": "8640:11:22",
																"nodeType": "VariableDeclaration",
																"scope": 5182,
																"src": "8632:19:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5088,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "8632:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5096,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5095,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5092,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5064,
																		"src": "8663:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	],
																	"id": 5091,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "8654:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint256_$",
																		"typeString": "type(uint256)"
																	},
																	"typeName": {
																		"id": 5090,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "8654:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5093,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "8654:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30784646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
																"id": 5094,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8668:61:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_110427941548649020598956093796432407239217743554726184882600387580788735_by_1",
																	"typeString": "int_const 1104...(64 digits omitted)...8735"
																},
																"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "8654:75:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "8632:97:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5099,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5097,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5078,
																"src": "8742:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30783746464646",
																"id": 5098,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8754:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_524287_by_1",
																	"typeString": "int_const 524287"
																},
																"value": "0x7FFFF"
															},
															"src": "8742:19:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5112,
														"nodeType": "IfStatement",
														"src": "8738:145:22",
														"trueBody": {
															"id": 5111,
															"nodeType": "Block",
															"src": "8763:120:22",
															"statements": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5102,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5100,
																			"name": "significand",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5089,
																			"src": "8777:11:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 5101,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "8791:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "8777:15:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"expression": {
																			"condition": {
																				"id": 5105,
																				"name": "negative",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5070,
																				"src": "8826:8:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseExpression": {
																				"id": 5107,
																				"name": "POSITIVE_INFINITY",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4343,
																				"src": "8857:17:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"id": 5108,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "Conditional",
																			"src": "8826:48:22",
																			"trueExpression": {
																				"id": 5106,
																				"name": "NEGATIVE_INFINITY",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4346,
																				"src": "8837:17:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 5068,
																		"id": 5109,
																		"nodeType": "Return",
																		"src": "8819:55:22"
																	},
																	"id": 5110,
																	"nodeType": "IfStatement",
																	"src": "8773:101:22",
																	"trueBody": {
																		"expression": {
																			"id": 5103,
																			"name": "NaN",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4349,
																			"src": "8801:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 5068,
																		"id": 5104,
																		"nodeType": "Return",
																		"src": "8794:10:22"
																	}
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5115,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5113,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5078,
																"src": "8895:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "323738353236",
																"id": 5114,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8906:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_278526_by_1",
																	"typeString": "int_const 278526"
																},
																"value": "278526"
															},
															"src": "8895:17:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5123,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5121,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5078,
																	"src": "8994:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<",
																"rightExpression": {
																	"hexValue": "323435363439",
																	"id": 5122,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9005:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_245649_by_1",
																		"typeString": "int_const 245649"
																	},
																	"value": "245649"
																},
																"src": "8994:17:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"condition": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 5131,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5129,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5078,
																		"src": "9085:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<",
																	"rightExpression": {
																		"hexValue": "323435373631",
																		"id": 5130,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "9096:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_245761_by_1",
																			"typeString": "int_const 245761"
																		},
																		"value": "245761"
																	},
																	"src": "9085:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseBody": {
																	"id": 5156,
																	"nodeType": "Block",
																	"src": "9264:66:22",
																	"statements": [
																		{
																			"expression": {
																				"id": 5150,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5148,
																					"name": "significand",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5089,
																					"src": "9274:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"hexValue": "313234",
																					"id": 5149,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "9290:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_124_by_1",
																						"typeString": "int_const 124"
																					},
																					"value": "124"
																				},
																				"src": "9274:19:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5151,
																			"nodeType": "ExpressionStatement",
																			"src": "9274:19:22"
																		},
																		{
																			"expression": {
																				"id": 5154,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5152,
																					"name": "exponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5078,
																					"src": "9303:8:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "-=",
																				"rightHandSide": {
																					"hexValue": "323435373630",
																					"id": 5153,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "9315:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_245760_by_1",
																						"typeString": "int_const 245760"
																					},
																					"value": "245760"
																				},
																				"src": "9303:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5155,
																			"nodeType": "ExpressionStatement",
																			"src": "9303:18:22"
																		}
																	]
																},
																"id": 5157,
																"nodeType": "IfStatement",
																"src": "9081:249:22",
																"trueBody": {
																	"id": 5147,
																	"nodeType": "Block",
																	"src": "9104:154:22",
																	"statements": [
																		{
																			"expression": {
																				"id": 5141,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5132,
																					"name": "significand",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5089,
																					"src": "9114:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 5140,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"components": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 5135,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 5133,
																									"name": "significand",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 5089,
																									"src": "9129:11:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "|",
																								"rightExpression": {
																									"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																									"id": 5134,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "9143:62:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1",
																										"typeString": "int_const 1104...(64 digits omitted)...8736"
																									},
																									"value": "0x100000000000000000000000000000000000000000000000000000000000"
																								},
																								"src": "9129:76:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"id": 5136,
																						"isConstant": false,
																						"isInlineArray": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "TupleExpression",
																						"src": "9128:78:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">>",
																					"rightExpression": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 5139,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"hexValue": "323435383835",
																							"id": 5137,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "9210:6:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_245885_by_1",
																								"typeString": "int_const 245885"
																							},
																							"value": "245885"
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "-",
																						"rightExpression": {
																							"id": 5138,
																							"name": "exponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5078,
																							"src": "9219:8:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "9210:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "9128:99:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "9114:113:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5142,
																			"nodeType": "ExpressionStatement",
																			"src": "9114:113:22"
																		},
																		{
																			"expression": {
																				"id": 5145,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5143,
																					"name": "exponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5078,
																					"src": "9237:8:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "30",
																					"id": 5144,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "9248:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "9237:12:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5146,
																			"nodeType": "ExpressionStatement",
																			"src": "9237:12:22"
																		}
																	]
																}
															},
															"id": 5158,
															"nodeType": "IfStatement",
															"src": "8990:340:22",
															"trueBody": {
																"expression": {
																	"condition": {
																		"id": 5124,
																		"name": "negative",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5070,
																		"src": "9028:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseExpression": {
																		"id": 5126,
																		"name": "POSITIVE_ZERO",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4337,
																		"src": "9055:13:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"id": 5127,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "Conditional",
																	"src": "9028:40:22",
																	"trueExpression": {
																		"id": 5125,
																		"name": "NEGATIVE_ZERO",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4340,
																		"src": "9039:13:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"functionReturnParameters": 5068,
																"id": 5128,
																"nodeType": "Return",
																"src": "9021:47:22"
															}
														},
														"id": 5159,
														"nodeType": "IfStatement",
														"src": "8891:439:22",
														"trueBody": {
															"expression": {
																"condition": {
																	"id": 5116,
																	"name": "negative",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5070,
																	"src": "8929:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseExpression": {
																	"id": 5118,
																	"name": "POSITIVE_INFINITY",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4343,
																	"src": "8960:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"id": 5119,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "Conditional",
																"src": "8929:48:22",
																"trueExpression": {
																	"id": 5117,
																	"name": "NEGATIVE_INFINITY",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4346,
																	"src": "8940:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 5068,
															"id": 5120,
															"nodeType": "Return",
															"src": "8922:55:22"
														}
													},
													{
														"assignments": [
															5161
														],
														"declarations": [
															{
																"constant": false,
																"id": 5161,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "9346:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 5182,
																"src": "9338:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"typeName": {
																	"id": 5160,
																	"name": "uint128",
																	"nodeType": "ElementaryTypeName",
																	"src": "9338:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5170,
														"initialValue": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 5168,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5164,
																		"name": "significand",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5089,
																		"src": "9364:11:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "|",
																	"rightExpression": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5167,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5165,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5078,
																			"src": "9378:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<<",
																		"rightExpression": {
																			"hexValue": "313132",
																			"id": 5166,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "9390:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_112_by_1",
																				"typeString": "int_const 112"
																			},
																			"value": "112"
																		},
																		"src": "9378:15:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "9364:29:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 5163,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "9355:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint128_$",
																	"typeString": "type(uint128)"
																},
																"typeName": {
																	"id": 5162,
																	"name": "uint128",
																	"nodeType": "ElementaryTypeName",
																	"src": "9355:7:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5169,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9355:39:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "9338:56:22"
													},
													{
														"condition": {
															"id": 5171,
															"name": "negative",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 5070,
															"src": "9406:8:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5176,
														"nodeType": "IfStatement",
														"src": "9402:58:22",
														"trueBody": {
															"expression": {
																"id": 5174,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5172,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5161,
																	"src": "9416:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "Assignment",
																"operator": "|=",
																"rightHandSide": {
																	"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																	"id": 5173,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9426:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																		"typeString": "int_const 1701...(31 digits omitted)...5728"
																	},
																	"value": "0x80000000000000000000000000000000"
																},
																"src": "9416:44:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"id": 5175,
															"nodeType": "ExpressionStatement",
															"src": "9416:44:22"
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 5179,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5161,
																	"src": "9485:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																],
																"id": 5178,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "9476:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes16_$",
																	"typeString": "type(bytes16)"
																},
																"typeName": {
																	"id": 5177,
																	"name": "bytes16",
																	"nodeType": "ElementaryTypeName",
																	"src": "9476:7:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5180,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9476:16:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 5068,
														"id": 5181,
														"nodeType": "Return",
														"src": "9469:23:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5062,
										"nodeType": "StructuredDocumentation",
										"src": "8222:164:22",
										"text": " Convert octuple precision number into quadruple precision number.\n @param x octuple precision number\n @return quadruple precision number"
									},
									"id": 5184,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "fromOctuple",
									"nameLocation": "8398:11:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5065,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5064,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "8419:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5184,
												"src": "8411:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 5063,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "8411:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8410:11:22"
									},
									"returnParameters": {
										"id": 5068,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5067,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5184,
												"src": "8445:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5066,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "8445:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8444:9:22"
									},
									"scope": 9524,
									"src": "8389:1114:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5284,
										"nodeType": "Block",
										"src": "9737:769:22",
										"statements": [
											{
												"id": 5283,
												"nodeType": "UncheckedBlock",
												"src": "9743:759:22",
												"statements": [
													{
														"assignments": [
															5193
														],
														"declarations": [
															{
																"constant": false,
																"id": 5193,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "9769:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5283,
																"src": "9761:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5192,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "9761:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5202,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5201,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5199,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5196,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5187,
																			"src": "9789:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5195,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "9780:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5194,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "9780:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5197,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "9780:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 5198,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9795:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "9780:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5200,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9801:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "9780:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "9761:46:22"
													},
													{
														"assignments": [
															5204
														],
														"declarations": [
															{
																"constant": false,
																"id": 5204,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "9824:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 5283,
																"src": "9816:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5203,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "9816:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5211,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5210,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5207,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5187,
																		"src": "9842:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5206,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "9833:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5205,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "9833:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5208,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "9833:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																"id": 5209,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9847:30:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0095"
																},
																"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "9833:44:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "9816:61:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5214,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5212,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5193,
																"src": "9890:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5213,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9902:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "9890:18:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5221,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5219,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5193,
																	"src": "9964:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "30",
																	"id": 5220,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9976:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																"src": "9964:13:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 5258,
																"nodeType": "Block",
																"src": "10222:61:22",
																"statements": [
																	{
																		"expression": {
																			"id": 5252,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 5250,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5204,
																				"src": "10232:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"hexValue": "313234",
																				"id": 5251,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10243:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_124_by_1",
																					"typeString": "int_const 124"
																				},
																				"value": "124"
																			},
																			"src": "10232:14:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 5253,
																		"nodeType": "ExpressionStatement",
																		"src": "10232:14:22"
																	},
																	{
																		"expression": {
																			"id": 5256,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 5254,
																				"name": "exponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5193,
																				"src": "10256:8:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "+=",
																			"rightHandSide": {
																				"hexValue": "323435373630",
																				"id": 5255,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10268:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_245760_by_1",
																					"typeString": "int_const 245760"
																				},
																				"value": "245760"
																			},
																			"src": "10256:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 5257,
																		"nodeType": "ExpressionStatement",
																		"src": "10256:18:22"
																	}
																]
															},
															"id": 5259,
															"nodeType": "IfStatement",
															"src": "9960:323:22",
															"trueBody": {
																"id": 5249,
																"nodeType": "Block",
																"src": "9979:237:22",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 5224,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 5222,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5204,
																				"src": "9993:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 5223,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10002:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "9993:10:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 5248,
																		"nodeType": "IfStatement",
																		"src": "9989:219:22",
																		"trueBody": {
																			"id": 5247,
																			"nodeType": "Block",
																			"src": "10005:203:22",
																			"statements": [
																				{
																					"assignments": [
																						5226
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 5226,
																							"mutability": "mutable",
																							"name": "msb",
																							"nameLocation": "10025:3:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 5247,
																							"src": "10017:11:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 5225,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "10017:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 5230,
																					"initialValue": {
																						"arguments": [
																							{
																								"id": 5228,
																								"name": "result",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5204,
																								"src": "10051:6:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"id": 5227,
																							"name": "mostSignificantBit",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 9523,
																							"src": "10031:18:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																								"typeString": "function (uint256) pure returns (uint256)"
																							}
																						},
																						"id": 5229,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "10031:27:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "10017:41:22"
																				},
																				{
																					"expression": {
																						"id": 5239,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 5231,
																							"name": "result",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5204,
																							"src": "10070:6:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 5238,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 5236,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 5232,
																									"name": "result",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 5204,
																									"src": "10079:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "<<",
																								"rightExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 5235,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"hexValue": "323336",
																										"id": 5233,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "10089:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_236_by_1",
																											"typeString": "int_const 236"
																										},
																										"value": "236"
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"id": 5234,
																										"name": "msb",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 5226,
																										"src": "10095:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "10089:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "10079:19:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "&",
																							"rightExpression": {
																								"hexValue": "30784646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
																								"id": 5237,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "10101:61:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_110427941548649020598956093796432407239217743554726184882600387580788735_by_1",
																									"typeString": "int_const 1104...(64 digits omitted)...8735"
																								},
																								"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																							},
																							"src": "10079:83:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "10070:92:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 5240,
																					"nodeType": "ExpressionStatement",
																					"src": "10070:92:22"
																				},
																				{
																					"expression": {
																						"id": 5245,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 5241,
																							"name": "exponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5193,
																							"src": "10174:8:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 5244,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"hexValue": "323435363439",
																								"id": 5242,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "10185:6:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_245649_by_1",
																									"typeString": "int_const 245649"
																								},
																								"value": "245649"
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "+",
																							"rightExpression": {
																								"id": 5243,
																								"name": "msb",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5226,
																								"src": "10194:3:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "10185:12:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "10174:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 5246,
																					"nodeType": "ExpressionStatement",
																					"src": "10174:23:22"
																				}
																			]
																		}
																	}
																]
															}
														},
														"id": 5260,
														"nodeType": "IfStatement",
														"src": "9886:397:22",
														"trueBody": {
															"expression": {
																"id": 5217,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5215,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5193,
																	"src": "9910:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"hexValue": "30783746464646",
																	"id": 5216,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9921:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_524287_by_1",
																		"typeString": "int_const 524287"
																	},
																	"value": "0x7FFFF"
																},
																"src": "9910:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 5218,
															"nodeType": "ExpressionStatement",
															"src": "9910:18:22"
														}
													},
													{
														"expression": {
															"id": 5265,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 5261,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5204,
																"src": "10291:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "|=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5264,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5262,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5193,
																	"src": "10301:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<<",
																"rightExpression": {
																	"hexValue": "323336",
																	"id": 5263,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10313:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_236_by_1",
																		"typeString": "int_const 236"
																	},
																	"value": "236"
																},
																"src": "10301:15:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "10291:25:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 5266,
														"nodeType": "ExpressionStatement",
														"src": "10291:25:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5272,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5269,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5187,
																		"src": "10337:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5268,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "10328:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5267,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "10328:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5270,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10328:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 5271,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10343:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "10328:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5277,
														"nodeType": "IfStatement",
														"src": "10324:139:22",
														"trueBody": {
															"expression": {
																"id": 5275,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5273,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5204,
																	"src": "10387:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "|=",
																"rightHandSide": {
																	"hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																	"id": 5274,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10397:66:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
																		"typeString": "int_const 5789...(69 digits omitted)...9968"
																	},
																	"value": "0x8000000000000000000000000000000000000000000000000000000000000000"
																},
																"src": "10387:76:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 5276,
															"nodeType": "ExpressionStatement",
															"src": "10387:76:22"
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 5280,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5204,
																	"src": "10488:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 5279,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "10479:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes32_$",
																	"typeString": "type(bytes32)"
																},
																"typeName": {
																	"id": 5278,
																	"name": "bytes32",
																	"nodeType": "ElementaryTypeName",
																	"src": "10479:7:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5281,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10479:16:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"functionReturnParameters": 5191,
														"id": 5282,
														"nodeType": "Return",
														"src": "10472:23:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5185,
										"nodeType": "StructuredDocumentation",
										"src": "9507:164:22",
										"text": " Convert quadruple precision number into octuple precision number.\n @param x quadruple precision number\n @return octuple precision number"
									},
									"id": 5285,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toOctuple",
									"nameLocation": "9683:9:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5188,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5187,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "9702:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5285,
												"src": "9694:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5186,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "9694:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9693:11:22"
									},
									"returnParameters": {
										"id": 5191,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5190,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5285,
												"src": "9728:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 5189,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "9728:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9727:9:22"
									},
									"scope": 9524,
									"src": "9674:832:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5387,
										"nodeType": "Block",
										"src": "10738:669:22",
										"statements": [
											{
												"id": 5386,
												"nodeType": "UncheckedBlock",
												"src": "10744:659:22",
												"statements": [
													{
														"assignments": [
															5294
														],
														"declarations": [
															{
																"constant": false,
																"id": 5294,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "10770:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5386,
																"src": "10762:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5293,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "10762:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5303,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint64",
																"typeString": "uint64"
															},
															"id": 5302,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint64",
																	"typeString": "uint64"
																},
																"id": 5300,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5297,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5288,
																			"src": "10789:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes8",
																				"typeString": "bytes8"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes8",
																				"typeString": "bytes8"
																			}
																		],
																		"id": 5296,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "10781:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint64_$",
																			"typeString": "type(uint64)"
																		},
																		"typeName": {
																			"id": 5295,
																			"name": "uint64",
																			"nodeType": "ElementaryTypeName",
																			"src": "10781:6:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5298,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "10781:10:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint64",
																		"typeString": "uint64"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "3532",
																	"id": 5299,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10795:2:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_52_by_1",
																		"typeString": "int_const 52"
																	},
																	"value": "52"
																},
																"src": "10781:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint64",
																	"typeString": "uint64"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "3078374646",
																"id": 5301,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10800:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2047_by_1",
																	"typeString": "int_const 2047"
																},
																"value": "0x7FF"
															},
															"src": "10781:24:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint64",
																"typeString": "uint64"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "10762:43:22"
													},
													{
														"assignments": [
															5305
														],
														"declarations": [
															{
																"constant": false,
																"id": 5305,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "10822:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 5386,
																"src": "10814:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5304,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "10814:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5312,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint64",
																"typeString": "uint64"
															},
															"id": 5311,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5308,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5288,
																		"src": "10839:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes8",
																			"typeString": "bytes8"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes8",
																			"typeString": "bytes8"
																		}
																	],
																	"id": 5307,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "10831:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint64_$",
																		"typeString": "type(uint64)"
																	},
																	"typeName": {
																		"id": 5306,
																		"name": "uint64",
																		"nodeType": "ElementaryTypeName",
																		"src": "10831:6:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5309,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10831:10:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint64",
																	"typeString": "uint64"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307846464646464646464646464646",
																"id": 5310,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10844:15:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_4503599627370495_by_1",
																	"typeString": "int_const 4503599627370495"
																},
																"value": "0xFFFFFFFFFFFFF"
															},
															"src": "10831:28:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint64",
																"typeString": "uint64"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "10814:45:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5315,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5313,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5294,
																"src": "10872:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "3078374646",
																"id": 5314,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "10884:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2047_by_1",
																	"typeString": "int_const 2047"
																},
																"value": "0x7FF"
															},
															"src": "10872:17:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5322,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5320,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5294,
																	"src": "10944:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "30",
																	"id": 5321,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10956:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																"src": "10944:13:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 5359,
																"nodeType": "Block",
																"src": "11170:59:22",
																"statements": [
																	{
																		"expression": {
																			"id": 5353,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 5351,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5305,
																				"src": "11180:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "<<=",
																			"rightHandSide": {
																				"hexValue": "3630",
																				"id": 5352,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "11191:2:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_60_by_1",
																					"typeString": "int_const 60"
																				},
																				"value": "60"
																			},
																			"src": "11180:13:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 5354,
																		"nodeType": "ExpressionStatement",
																		"src": "11180:13:22"
																	},
																	{
																		"expression": {
																			"id": 5357,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 5355,
																				"name": "exponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5294,
																				"src": "11203:8:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "+=",
																			"rightHandSide": {
																				"hexValue": "3135333630",
																				"id": 5356,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "11215:5:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_15360_by_1",
																					"typeString": "int_const 15360"
																				},
																				"value": "15360"
																			},
																			"src": "11203:17:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 5358,
																		"nodeType": "ExpressionStatement",
																		"src": "11203:17:22"
																	}
																]
															},
															"id": 5360,
															"nodeType": "IfStatement",
															"src": "10940:289:22",
															"trueBody": {
																"id": 5350,
																"nodeType": "Block",
																"src": "10959:205:22",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 5325,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 5323,
																				"name": "result",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5305,
																				"src": "10973:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 5324,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "10982:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "10973:10:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 5349,
																		"nodeType": "IfStatement",
																		"src": "10969:187:22",
																		"trueBody": {
																			"id": 5348,
																			"nodeType": "Block",
																			"src": "10985:171:22",
																			"statements": [
																				{
																					"assignments": [
																						5327
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 5327,
																							"mutability": "mutable",
																							"name": "msb",
																							"nameLocation": "11005:3:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 5348,
																							"src": "10997:11:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 5326,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "10997:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 5331,
																					"initialValue": {
																						"arguments": [
																							{
																								"id": 5329,
																								"name": "result",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5305,
																								"src": "11031:6:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"id": 5328,
																							"name": "mostSignificantBit",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 9523,
																							"src": "11011:18:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																								"typeString": "function (uint256) pure returns (uint256)"
																							}
																						},
																						"id": 5330,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "11011:27:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "10997:41:22"
																				},
																				{
																					"expression": {
																						"id": 5340,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 5332,
																							"name": "result",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5305,
																							"src": "11050:6:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 5339,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 5337,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 5333,
																									"name": "result",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 5305,
																									"src": "11059:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "<<",
																								"rightExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 5336,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"hexValue": "313132",
																										"id": 5334,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "11069:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"id": 5335,
																										"name": "msb",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 5327,
																										"src": "11075:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "11069:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "11059:19:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "&",
																							"rightExpression": {
																								"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																								"id": 5338,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "11081:30:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																									"typeString": "int_const 5192...(26 digits omitted)...0095"
																								},
																								"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																							},
																							"src": "11059:52:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "11050:61:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 5341,
																					"nodeType": "ExpressionStatement",
																					"src": "11050:61:22"
																				},
																				{
																					"expression": {
																						"id": 5346,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 5342,
																							"name": "exponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5294,
																							"src": "11123:8:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 5345,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"hexValue": "3135333039",
																								"id": 5343,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "11134:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_15309_by_1",
																									"typeString": "int_const 15309"
																								},
																								"value": "15309"
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "+",
																							"rightExpression": {
																								"id": 5344,
																								"name": "msb",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5327,
																								"src": "11142:3:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "11134:11:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "11123:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 5347,
																					"nodeType": "ExpressionStatement",
																					"src": "11123:22:22"
																				}
																			]
																		}
																	}
																]
															}
														},
														"id": 5361,
														"nodeType": "IfStatement",
														"src": "10868:361:22",
														"trueBody": {
															"expression": {
																"id": 5318,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5316,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5294,
																	"src": "10891:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"hexValue": "307837464646",
																	"id": 5317,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10902:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32767_by_1",
																		"typeString": "int_const 32767"
																	},
																	"value": "0x7FFF"
																},
																"src": "10891:17:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 5319,
															"nodeType": "ExpressionStatement",
															"src": "10891:17:22"
														}
													},
													{
														"expression": {
															"id": 5366,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"id": 5362,
																"name": "result",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5305,
																"src": "11237:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "|=",
															"rightHandSide": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5365,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5363,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5294,
																	"src": "11247:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<<",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 5364,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11259:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "11247:15:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "11237:25:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 5367,
														"nodeType": "ExpressionStatement",
														"src": "11237:25:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_bytes8",
																"typeString": "bytes8"
															},
															"id": 5372,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_bytes8",
																	"typeString": "bytes8"
																},
																"id": 5370,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5368,
																	"name": "x",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5288,
																	"src": "11274:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "307838303030303030303030303030303030",
																	"id": 5369,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11278:18:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_9223372036854775808_by_1",
																		"typeString": "int_const 9223372036854775808"
																	},
																	"value": "0x8000000000000000"
																},
																"src": "11274:22:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes8",
																	"typeString": "bytes8"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 5371,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11299:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "11274:26:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5377,
														"nodeType": "IfStatement",
														"src": "11270:84:22",
														"trueBody": {
															"expression": {
																"id": 5375,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5373,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5305,
																	"src": "11310:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "|=",
																"rightHandSide": {
																	"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																	"id": 5374,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11320:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																		"typeString": "int_const 1701...(31 digits omitted)...5728"
																	},
																	"value": "0x80000000000000000000000000000000"
																},
																"src": "11310:44:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 5376,
															"nodeType": "ExpressionStatement",
															"src": "11310:44:22"
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 5382,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5305,
																			"src": "11388:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"id": 5381,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "11379:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5380,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "11379:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5383,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "11379:16:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																],
																"id": 5379,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "11370:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes16_$",
																	"typeString": "type(bytes16)"
																},
																"typeName": {
																	"id": 5378,
																	"name": "bytes16",
																	"nodeType": "ElementaryTypeName",
																	"src": "11370:7:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5384,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11370:26:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 5292,
														"id": 5385,
														"nodeType": "Return",
														"src": "11363:33:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5286,
										"nodeType": "StructuredDocumentation",
										"src": "10510:162:22",
										"text": " Convert double precision number into quadruple precision number.\n @param x double precision number\n @return quadruple precision number"
									},
									"id": 5388,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "fromDouble",
									"nameLocation": "10684:10:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5289,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5288,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "10703:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5388,
												"src": "10696:8:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes8",
													"typeString": "bytes8"
												},
												"typeName": {
													"id": 5287,
													"name": "bytes8",
													"nodeType": "ElementaryTypeName",
													"src": "10696:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes8",
														"typeString": "bytes8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10695:10:22"
									},
									"returnParameters": {
										"id": 5292,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5291,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5388,
												"src": "10729:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5290,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "10729:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10728:9:22"
									},
									"scope": 9524,
									"src": "10675:732:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5529,
										"nodeType": "Block",
										"src": "11637:1157:22",
										"statements": [
											{
												"id": 5528,
												"nodeType": "UncheckedBlock",
												"src": "11643:1147:22",
												"statements": [
													{
														"assignments": [
															5397
														],
														"declarations": [
															{
																"constant": false,
																"id": 5397,
																"mutability": "mutable",
																"name": "negative",
																"nameLocation": "11666:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5528,
																"src": "11661:13:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"typeName": {
																	"id": 5396,
																	"name": "bool",
																	"nodeType": "ElementaryTypeName",
																	"src": "11661:4:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5404,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5403,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5400,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5391,
																		"src": "11686:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5399,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "11677:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5398,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "11677:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5401,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "11677:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 5402,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11692:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "11677:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "11661:65:22"
													},
													{
														"assignments": [
															5406
														],
														"declarations": [
															{
																"constant": false,
																"id": 5406,
																"mutability": "mutable",
																"name": "exponent",
																"nameLocation": "11743:8:22",
																"nodeType": "VariableDeclaration",
																"scope": 5528,
																"src": "11735:16:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5405,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "11735:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5415,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5414,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5412,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5409,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5391,
																			"src": "11763:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5408,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "11754:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5407,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "11754:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5410,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "11754:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 5411,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11769:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "11754:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5413,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11775:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "11754:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "11735:46:22"
													},
													{
														"assignments": [
															5417
														],
														"declarations": [
															{
																"constant": false,
																"id": 5417,
																"mutability": "mutable",
																"name": "significand",
																"nameLocation": "11797:11:22",
																"nodeType": "VariableDeclaration",
																"scope": 5528,
																"src": "11789:19:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5416,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "11789:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5424,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5423,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5420,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5391,
																		"src": "11820:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5419,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "11811:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5418,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "11811:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5421,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "11811:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																"id": 5422,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11825:30:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0095"
																},
																"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "11811:44:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "11789:66:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5427,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5425,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5406,
																"src": "11868:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5426,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11880:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "11868:18:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5446,
														"nodeType": "IfStatement",
														"src": "11864:235:22",
														"trueBody": {
															"id": 5445,
															"nodeType": "Block",
															"src": "11888:211:22",
															"statements": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5430,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5428,
																			"name": "significand",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5417,
																			"src": "11902:11:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 5429,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11916:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "11902:15:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"expression": {
																			"condition": {
																				"id": 5433,
																				"name": "negative",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5397,
																				"src": "11973:8:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseExpression": {
																				"arguments": [
																					{
																						"hexValue": "307837464630303030303030303030303030",
																						"id": 5440,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "12059:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9218868437227405312_by_1",
																							"typeString": "int_const 9218868437227405312"
																						},
																						"value": "0x7FF0000000000000"
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_rational_9218868437227405312_by_1",
																							"typeString": "int_const 9218868437227405312"
																						}
																					],
																					"id": 5439,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "12051:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_bytes8_$",
																						"typeString": "type(bytes8)"
																					},
																					"typeName": {
																						"id": 5438,
																						"name": "bytes8",
																						"nodeType": "ElementaryTypeName",
																						"src": "12051:6:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5441,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "12051:27:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes8",
																					"typeString": "bytes8"
																				}
																			},
																			"id": 5442,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "Conditional",
																			"src": "11973:105:22",
																			"trueExpression": {
																				"arguments": [
																					{
																						"hexValue": "307846464630303030303030303030303030",
																						"id": 5436,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "12004:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_18442240474082181120_by_1",
																							"typeString": "int_const 18442240474082181120"
																						},
																						"value": "0xFFF0000000000000"
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_rational_18442240474082181120_by_1",
																							"typeString": "int_const 18442240474082181120"
																						}
																					],
																					"id": 5435,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "11996:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_bytes8_$",
																						"typeString": "type(bytes8)"
																					},
																					"typeName": {
																						"id": 5434,
																						"name": "bytes8",
																						"nodeType": "ElementaryTypeName",
																						"src": "11996:6:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5437,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "11996:27:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes8",
																					"typeString": "bytes8"
																				}
																			},
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes8",
																				"typeString": "bytes8"
																			}
																		},
																		"functionReturnParameters": 5395,
																		"id": 5443,
																		"nodeType": "Return",
																		"src": "11966:112:22"
																	},
																	"id": 5444,
																	"nodeType": "IfStatement",
																	"src": "11898:180:22",
																	"trueBody": {
																		"expression": {
																			"hexValue": "307837464638303030303030303030303030",
																			"id": 5431,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11926:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_9221120237041090560_by_1",
																				"typeString": "int_const 9221120237041090560"
																			},
																			"value": "0x7FF8000000000000"
																		},
																		"functionReturnParameters": 5395,
																		"id": 5432,
																		"nodeType": "Return",
																		"src": "11919:25:22"
																	}
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5449,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5447,
																"name": "exponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5406,
																"src": "12111:8:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "3137343036",
																"id": 5448,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "12122:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_17406_by_1",
																	"typeString": "int_const 17406"
																},
																"value": "17406"
															},
															"src": "12111:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5463,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5461,
																	"name": "exponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5406,
																	"src": "12278:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<",
																"rightExpression": {
																	"hexValue": "3135333039",
																	"id": 5462,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12289:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_15309_by_1",
																		"typeString": "int_const 15309"
																	},
																	"value": "15309"
																},
																"src": "12278:16:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"condition": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 5477,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5475,
																		"name": "exponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5406,
																		"src": "12431:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<",
																	"rightExpression": {
																		"hexValue": "3135333631",
																		"id": 5476,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "12442:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_15361_by_1",
																			"typeString": "int_const 15361"
																		},
																		"value": "15361"
																	},
																	"src": "12431:16:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseBody": {
																	"id": 5502,
																	"nodeType": "Block",
																	"src": "12577:64:22",
																	"statements": [
																		{
																			"expression": {
																				"id": 5496,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5494,
																					"name": "significand",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5417,
																					"src": "12587:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": ">>=",
																				"rightHandSide": {
																					"hexValue": "3630",
																					"id": 5495,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "12603:2:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_60_by_1",
																						"typeString": "int_const 60"
																					},
																					"value": "60"
																				},
																				"src": "12587:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5497,
																			"nodeType": "ExpressionStatement",
																			"src": "12587:18:22"
																		},
																		{
																			"expression": {
																				"id": 5500,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5498,
																					"name": "exponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5406,
																					"src": "12615:8:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "-=",
																				"rightHandSide": {
																					"hexValue": "3135333630",
																					"id": 5499,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "12627:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_15360_by_1",
																						"typeString": "int_const 15360"
																					},
																					"value": "15360"
																				},
																				"src": "12615:17:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5501,
																			"nodeType": "ExpressionStatement",
																			"src": "12615:17:22"
																		}
																	]
																},
																"id": 5503,
																"nodeType": "IfStatement",
																"src": "12427:214:22",
																"trueBody": {
																	"id": 5493,
																	"nodeType": "Block",
																	"src": "12449:122:22",
																	"statements": [
																		{
																			"expression": {
																				"id": 5487,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5478,
																					"name": "significand",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5417,
																					"src": "12459:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 5486,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"components": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 5481,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 5479,
																									"name": "significand",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 5417,
																									"src": "12474:11:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "|",
																								"rightExpression": {
																									"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																									"id": 5480,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "12488:31:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																										"typeString": "int_const 5192...(26 digits omitted)...0096"
																									},
																									"value": "0x10000000000000000000000000000"
																								},
																								"src": "12474:45:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"id": 5482,
																						"isConstant": false,
																						"isInlineArray": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "TupleExpression",
																						"src": "12473:47:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">>",
																					"rightExpression": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 5485,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"hexValue": "3135343231",
																							"id": 5483,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "12524:5:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_15421_by_1",
																								"typeString": "int_const 15421"
																							},
																							"value": "15421"
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "-",
																						"rightExpression": {
																							"id": 5484,
																							"name": "exponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5406,
																							"src": "12532:8:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "12524:16:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "12473:67:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "12459:81:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5488,
																			"nodeType": "ExpressionStatement",
																			"src": "12459:81:22"
																		},
																		{
																			"expression": {
																				"id": 5491,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5489,
																					"name": "exponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5406,
																					"src": "12550:8:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "30",
																					"id": 5490,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "12561:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "12550:12:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5492,
																			"nodeType": "ExpressionStatement",
																			"src": "12550:12:22"
																		}
																	]
																}
															},
															"id": 5504,
															"nodeType": "IfStatement",
															"src": "12274:367:22",
															"trueBody": {
																"expression": {
																	"condition": {
																		"id": 5464,
																		"name": "negative",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5397,
																		"src": "12311:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseExpression": {
																		"arguments": [
																			{
																				"hexValue": "307830303030303030303030303030303030",
																				"id": 5471,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12390:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0x0000000000000000"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				}
																			],
																			"id": 5470,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "12382:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes8_$",
																				"typeString": "type(bytes8)"
																			},
																			"typeName": {
																				"id": 5469,
																				"name": "bytes8",
																				"nodeType": "ElementaryTypeName",
																				"src": "12382:6:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 5472,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "12382:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes8",
																			"typeString": "bytes8"
																		}
																	},
																	"id": 5473,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "Conditional",
																	"src": "12311:98:22",
																	"trueExpression": {
																		"arguments": [
																			{
																				"hexValue": "307838303030303030303030303030303030",
																				"id": 5467,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12342:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_9223372036854775808_by_1",
																					"typeString": "int_const 9223372036854775808"
																				},
																				"value": "0x8000000000000000"
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_rational_9223372036854775808_by_1",
																					"typeString": "int_const 9223372036854775808"
																				}
																			],
																			"id": 5466,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "12334:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_bytes8_$",
																				"typeString": "type(bytes8)"
																			},
																			"typeName": {
																				"id": 5465,
																				"name": "bytes8",
																				"nodeType": "ElementaryTypeName",
																				"src": "12334:6:22",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 5468,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "12334:27:22",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes8",
																			"typeString": "bytes8"
																		}
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																},
																"functionReturnParameters": 5395,
																"id": 5474,
																"nodeType": "Return",
																"src": "12304:105:22"
															}
														},
														"id": 5505,
														"nodeType": "IfStatement",
														"src": "12107:534:22",
														"trueBody": {
															"expression": {
																"condition": {
																	"id": 5450,
																	"name": "negative",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5397,
																	"src": "12144:8:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseExpression": {
																	"arguments": [
																		{
																			"hexValue": "307837464630303030303030303030303030",
																			"id": 5457,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12230:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_9218868437227405312_by_1",
																				"typeString": "int_const 9218868437227405312"
																			},
																			"value": "0x7FF0000000000000"
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_rational_9218868437227405312_by_1",
																				"typeString": "int_const 9218868437227405312"
																			}
																		],
																		"id": 5456,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "12222:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_bytes8_$",
																			"typeString": "type(bytes8)"
																		},
																		"typeName": {
																			"id": 5455,
																			"name": "bytes8",
																			"nodeType": "ElementaryTypeName",
																			"src": "12222:6:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5458,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "12222:27:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																},
																"id": 5459,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "Conditional",
																"src": "12144:105:22",
																"trueExpression": {
																	"arguments": [
																		{
																			"hexValue": "307846464630303030303030303030303030",
																			"id": 5453,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12175:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_18442240474082181120_by_1",
																				"typeString": "int_const 18442240474082181120"
																			},
																			"value": "0xFFF0000000000000"
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_rational_18442240474082181120_by_1",
																				"typeString": "int_const 18442240474082181120"
																			}
																		],
																		"id": 5452,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "12167:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_bytes8_$",
																			"typeString": "type(bytes8)"
																		},
																		"typeName": {
																			"id": 5451,
																			"name": "bytes8",
																			"nodeType": "ElementaryTypeName",
																			"src": "12167:6:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5454,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "12167:27:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes8",
																	"typeString": "bytes8"
																}
															},
															"functionReturnParameters": 5395,
															"id": 5460,
															"nodeType": "Return",
															"src": "12137:112:22"
														}
													},
													{
														"assignments": [
															5507
														],
														"declarations": [
															{
																"constant": false,
																"id": 5507,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "12656:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 5528,
																"src": "12649:13:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint64",
																	"typeString": "uint64"
																},
																"typeName": {
																	"id": 5506,
																	"name": "uint64",
																	"nodeType": "ElementaryTypeName",
																	"src": "12649:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint64",
																		"typeString": "uint64"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5516,
														"initialValue": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 5514,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5510,
																		"name": "significand",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5417,
																		"src": "12673:11:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "|",
																	"rightExpression": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5513,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5511,
																			"name": "exponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5406,
																			"src": "12687:8:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<<",
																		"rightExpression": {
																			"hexValue": "3532",
																			"id": 5512,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "12699:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_52_by_1",
																				"typeString": "int_const 52"
																			},
																			"value": "52"
																		},
																		"src": "12687:14:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "12673:28:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"id": 5509,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "12665:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint64_$",
																	"typeString": "type(uint64)"
																},
																"typeName": {
																	"id": 5508,
																	"name": "uint64",
																	"nodeType": "ElementaryTypeName",
																	"src": "12665:6:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5515,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12665:37:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint64",
																"typeString": "uint64"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "12649:53:22"
													},
													{
														"condition": {
															"id": 5517,
															"name": "negative",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 5397,
															"src": "12714:8:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 5522,
														"nodeType": "IfStatement",
														"src": "12710:42:22",
														"trueBody": {
															"expression": {
																"id": 5520,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 5518,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5507,
																	"src": "12724:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint64",
																		"typeString": "uint64"
																	}
																},
																"nodeType": "Assignment",
																"operator": "|=",
																"rightHandSide": {
																	"hexValue": "307838303030303030303030303030303030",
																	"id": 5519,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12734:18:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_9223372036854775808_by_1",
																		"typeString": "int_const 9223372036854775808"
																	},
																	"value": "0x8000000000000000"
																},
																"src": "12724:28:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint64",
																	"typeString": "uint64"
																}
															},
															"id": 5521,
															"nodeType": "ExpressionStatement",
															"src": "12724:28:22"
														}
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 5525,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5507,
																	"src": "12776:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint64",
																		"typeString": "uint64"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_uint64",
																		"typeString": "uint64"
																	}
																],
																"id": 5524,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "12768:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes8_$",
																	"typeString": "type(bytes8)"
																},
																"typeName": {
																	"id": 5523,
																	"name": "bytes8",
																	"nodeType": "ElementaryTypeName",
																	"src": "12768:6:22",
																	"typeDescriptions": {}
																}
															},
															"id": 5526,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12768:15:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes8",
																"typeString": "bytes8"
															}
														},
														"functionReturnParameters": 5395,
														"id": 5527,
														"nodeType": "Return",
														"src": "12761:22:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5389,
										"nodeType": "StructuredDocumentation",
										"src": "11411:162:22",
										"text": " Convert quadruple precision number into double precision number.\n @param x quadruple precision number\n @return double precision number"
									},
									"id": 5530,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "toDouble",
									"nameLocation": "11585:8:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5392,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5391,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "11603:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5530,
												"src": "11595:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5390,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "11595:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11594:11:22"
									},
									"returnParameters": {
										"id": 5395,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5394,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5530,
												"src": "11629:6:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes8",
													"typeString": "bytes8"
												},
												"typeName": {
													"id": 5393,
													"name": "bytes8",
													"nodeType": "ElementaryTypeName",
													"src": "11629:6:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes8",
														"typeString": "bytes8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11628:8:22"
									},
									"scope": 9524,
									"src": "11576:1218:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5548,
										"nodeType": "Block",
										"src": "13018:135:22",
										"statements": [
											{
												"id": 5547,
												"nodeType": "UncheckedBlock",
												"src": "13024:125:22",
												"statements": [
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5545,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5543,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5540,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5533,
																			"src": "13058:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5539,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "13049:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5538,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "13049:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5541,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "13049:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																	"id": 5542,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13063:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																		"typeString": "int_const 1701...(31 digits omitted)...5727"
																	},
																	"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "13049:48:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																"id": 5544,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "13108:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5632"
																},
																"value": "0x7FFF0000000000000000000000000000"
															},
															"src": "13049:93:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"functionReturnParameters": 5537,
														"id": 5546,
														"nodeType": "Return",
														"src": "13042:100:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5531,
										"nodeType": "StructuredDocumentation",
										"src": "12798:161:22",
										"text": " Test whether given quadruple precision number is NaN.\n @param x quadruple precision number\n @return true if x is NaN, false otherwise"
									},
									"id": 5549,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "isNaN",
									"nameLocation": "12971:5:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5534,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5533,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "12986:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5549,
												"src": "12978:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5532,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "12978:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12977:11:22"
									},
									"returnParameters": {
										"id": 5537,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5536,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5549,
												"src": "13012:4:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5535,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13012:4:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13011:6:22"
									},
									"scope": 9524,
									"src": "12962:191:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5567,
										"nodeType": "Block",
										"src": "13439:136:22",
										"statements": [
											{
												"id": 5566,
												"nodeType": "UncheckedBlock",
												"src": "13445:126:22",
												"statements": [
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5564,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5562,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5559,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5552,
																			"src": "13479:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5558,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "13470:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5557,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "13470:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5560,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "13470:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "&",
																"rightExpression": {
																	"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																	"id": 5561,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13484:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																		"typeString": "int_const 1701...(31 digits omitted)...5727"
																	},
																	"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																},
																"src": "13470:48:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																"id": 5563,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "13530:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5632"
																},
																"value": "0x7FFF0000000000000000000000000000"
															},
															"src": "13470:94:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"functionReturnParameters": 5556,
														"id": 5565,
														"nodeType": "Return",
														"src": "13463:101:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5550,
										"nodeType": "StructuredDocumentation",
										"src": "13157:218:22",
										"text": " Test whether given quadruple precision number is positive or negative\n infinity.\n @param x quadruple precision number\n @return true if x is positive or negative infinity, false otherwise"
									},
									"id": 5568,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "isInfinity",
									"nameLocation": "13387:10:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5553,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5552,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "13407:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5568,
												"src": "13399:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5551,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "13399:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13398:11:22"
									},
									"returnParameters": {
										"id": 5556,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5555,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5568,
												"src": "13433:4:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5554,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13433:4:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13432:6:22"
									},
									"scope": 9524,
									"src": "13378:197:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5610,
										"nodeType": "Block",
										"src": "13864:315:22",
										"statements": [
											{
												"id": 5609,
												"nodeType": "UncheckedBlock",
												"src": "13870:305:22",
												"statements": [
													{
														"assignments": [
															5577
														],
														"declarations": [
															{
																"constant": false,
																"id": 5577,
																"mutability": "mutable",
																"name": "absoluteX",
																"nameLocation": "13896:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 5609,
																"src": "13888:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"typeName": {
																	"id": 5576,
																	"name": "uint128",
																	"nodeType": "ElementaryTypeName",
																	"src": "13888:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5584,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5583,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5580,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5571,
																		"src": "13917:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5579,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "13908:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5578,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "13908:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5581,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "13908:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																"id": 5582,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "13922:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5727"
																},
																"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "13908:48:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "13888:68:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	},
																	"id": 5588,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5586,
																		"name": "absoluteX",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5577,
																		"src": "13974:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																		"id": 5587,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "13987:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																			"typeString": "int_const 1701...(31 digits omitted)...5632"
																		},
																		"value": "0x7FFF0000000000000000000000000000"
																	},
																	"src": "13974:47:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 5585,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "13965:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 5589,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13965:57:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 5590,
														"nodeType": "ExpressionStatement",
														"src": "13965:57:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5593,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5591,
																"name": "absoluteX",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5577,
																"src": "14046:9:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 5592,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14059:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "14046:14:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5601,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5598,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5571,
																			"src": "14096:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5597,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "14087:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5596,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "14087:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5599,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "14087:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">=",
																"rightExpression": {
																	"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																	"id": 5600,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14102:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																		"typeString": "int_const 1701...(31 digits omitted)...5728"
																	},
																	"value": "0x80000000000000000000000000000000"
																},
																"src": "14087:49:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"expression": {
																	"hexValue": "31",
																	"id": 5605,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14167:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"functionReturnParameters": 5575,
																"id": 5606,
																"nodeType": "Return",
																"src": "14160:8:22"
															},
															"id": 5607,
															"nodeType": "IfStatement",
															"src": "14083:85:22",
															"trueBody": {
																"expression": {
																	"id": 5603,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "UnaryOperation",
																	"operator": "-",
																	"prefix": true,
																	"src": "14145:2:22",
																	"subExpression": {
																		"hexValue": "31",
																		"id": 5602,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "14146:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_1_by_1",
																			"typeString": "int_const 1"
																		},
																		"value": "1"
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_minus_1_by_1",
																		"typeString": "int_const -1"
																	}
																},
																"functionReturnParameters": 5575,
																"id": 5604,
																"nodeType": "Return",
																"src": "14138:9:22"
															}
														},
														"id": 5608,
														"nodeType": "IfStatement",
														"src": "14042:126:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 5594,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14069:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 5575,
															"id": 5595,
															"nodeType": "Return",
															"src": "14062:8:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5569,
										"nodeType": "StructuredDocumentation",
										"src": "13579:227:22",
										"text": " Calculate sign of x, i.e. -1 if x is negative, 0 if x if zero, and 1 if x\n is positive.  Note that sign (-0) is zero.  Revert if x is NaN. \n @param x quadruple precision number\n @return sign of x"
									},
									"id": 5611,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sign",
									"nameLocation": "13818:4:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5572,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5571,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "13832:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5611,
												"src": "13824:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5570,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "13824:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13823:11:22"
									},
									"returnParameters": {
										"id": 5575,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5574,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5611,
												"src": "13858:4:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int8",
													"typeString": "int8"
												},
												"typeName": {
													"id": 5573,
													"name": "int8",
													"nodeType": "ElementaryTypeName",
													"src": "13858:4:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int8",
														"typeString": "int8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13857:6:22"
									},
									"scope": 9524,
									"src": "13809:370:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5722,
										"nodeType": "Block",
										"src": "14494:899:22",
										"statements": [
											{
												"id": 5721,
												"nodeType": "UncheckedBlock",
												"src": "14500:889:22",
												"statements": [
													{
														"assignments": [
															5622
														],
														"declarations": [
															{
																"constant": false,
																"id": 5622,
																"mutability": "mutable",
																"name": "absoluteX",
																"nameLocation": "14526:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 5721,
																"src": "14518:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"typeName": {
																	"id": 5621,
																	"name": "uint128",
																	"nodeType": "ElementaryTypeName",
																	"src": "14518:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5629,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5628,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5625,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5614,
																		"src": "14547:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5624,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "14538:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5623,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "14538:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5626,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "14538:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																"id": 5627,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14552:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5727"
																},
																"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "14538:48:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "14518:68:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	},
																	"id": 5633,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5631,
																		"name": "absoluteX",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5622,
																		"src": "14604:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																		"id": 5632,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "14617:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																			"typeString": "int_const 1701...(31 digits omitted)...5632"
																		},
																		"value": "0x7FFF0000000000000000000000000000"
																	},
																	"src": "14604:47:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 5630,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "14595:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 5634,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14595:57:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 5635,
														"nodeType": "ExpressionStatement",
														"src": "14595:57:22"
													},
													{
														"assignments": [
															5637
														],
														"declarations": [
															{
																"constant": false,
																"id": 5637,
																"mutability": "mutable",
																"name": "absoluteY",
																"nameLocation": "14680:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 5721,
																"src": "14672:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"typeName": {
																	"id": 5636,
																	"name": "uint128",
																	"nodeType": "ElementaryTypeName",
																	"src": "14672:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5644,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5643,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 5640,
																		"name": "y",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5616,
																		"src": "14701:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 5639,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "14692:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 5638,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "14692:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 5641,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "14692:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																"id": 5642,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14706:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5727"
																},
																"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "14692:48:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "14672:68:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	},
																	"id": 5648,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 5646,
																		"name": "absoluteY",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5637,
																		"src": "14758:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<=",
																	"rightExpression": {
																		"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																		"id": 5647,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "14771:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																			"typeString": "int_const 1701...(31 digits omitted)...5632"
																		},
																		"value": "0x7FFF0000000000000000000000000000"
																	},
																	"src": "14758:47:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 5645,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "14749:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 5649,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14749:57:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 5650,
														"nodeType": "ExpressionStatement",
														"src": "14749:57:22"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"id": 5658,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"commonType": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		},
																		"id": 5654,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5652,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5614,
																			"src": "14876:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "!=",
																		"rightExpression": {
																			"id": 5653,
																			"name": "y",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5616,
																			"src": "14881:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"src": "14876:6:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "||",
																	"rightExpression": {
																		"commonType": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		},
																		"id": 5657,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5655,
																			"name": "absoluteX",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5622,
																			"src": "14886:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																			"id": 5656,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "14898:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																				"typeString": "int_const 1701...(31 digits omitted)...5632"
																			},
																			"value": "0x7FFF0000000000000000000000000000"
																		},
																		"src": "14886:46:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"src": "14876:56:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 5651,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "14867:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 5659,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14867:66:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 5660,
														"nodeType": "ExpressionStatement",
														"src": "14867:66:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															},
															"id": 5663,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5661,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5614,
																"src": "14946:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"id": 5662,
																"name": "y",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5616,
																"src": "14951:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"src": "14946:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 5719,
															"nodeType": "Block",
															"src": "14975:408:22",
															"statements": [
																{
																	"assignments": [
																		5667
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 5667,
																			"mutability": "mutable",
																			"name": "negativeX",
																			"nameLocation": "14990:9:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 5719,
																			"src": "14985:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"typeName": {
																				"id": 5666,
																				"name": "bool",
																				"nodeType": "ElementaryTypeName",
																				"src": "14985:4:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 5674,
																	"initialValue": {
																		"commonType": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		},
																		"id": 5673,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"arguments": [
																				{
																					"id": 5670,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5614,
																					"src": "15011:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 5669,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "15002:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 5668,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "15002:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 5671,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "15002:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">=",
																		"rightExpression": {
																			"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																			"id": 5672,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "15017:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																				"typeString": "int_const 1701...(31 digits omitted)...5728"
																			},
																			"value": "0x80000000000000000000000000000000"
																		},
																		"src": "15002:49:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "14985:66:22"
																},
																{
																	"assignments": [
																		5676
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 5676,
																			"mutability": "mutable",
																			"name": "negativeY",
																			"nameLocation": "15066:9:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 5719,
																			"src": "15061:14:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			},
																			"typeName": {
																				"id": 5675,
																				"name": "bool",
																				"nodeType": "ElementaryTypeName",
																				"src": "15061:4:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 5683,
																	"initialValue": {
																		"commonType": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		},
																		"id": 5682,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"arguments": [
																				{
																					"id": 5679,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5616,
																					"src": "15087:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				],
																				"id": 5678,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "15078:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_uint128_$",
																					"typeString": "type(uint128)"
																				},
																				"typeName": {
																					"id": 5677,
																					"name": "uint128",
																					"nodeType": "ElementaryTypeName",
																					"src": "15078:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 5680,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "15078:11:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">=",
																		"rightExpression": {
																			"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																			"id": 5681,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "15093:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																				"typeString": "int_const 1701...(31 digits omitted)...5728"
																			},
																			"value": "0x80000000000000000000000000000000"
																		},
																		"src": "15078:49:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "15061:66:22"
																},
																{
																	"condition": {
																		"id": 5684,
																		"name": "negativeX",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 5667,
																		"src": "15142:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"id": 5717,
																		"nodeType": "Block",
																		"src": "15268:107:22",
																		"statements": [
																			{
																				"condition": {
																					"id": 5702,
																					"name": "negativeY",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5676,
																					"src": "15284:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"expression": {
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_uint128",
																								"typeString": "uint128"
																							},
																							"id": 5707,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 5705,
																								"name": "absoluteX",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5622,
																								"src": "15327:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": ">",
																							"rightExpression": {
																								"id": 5706,
																								"name": "absoluteY",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5637,
																								"src": "15339:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							},
																							"src": "15327:21:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"falseExpression": {
																							"id": 5713,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "UnaryOperation",
																							"operator": "-",
																							"prefix": true,
																							"src": "15362:2:22",
																							"subExpression": {
																								"hexValue": "31",
																								"id": 5712,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "15363:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_1_by_1",
																									"typeString": "int_const 1"
																								},
																								"value": "1"
																							},
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_minus_1_by_1",
																								"typeString": "int_const -1"
																							}
																						},
																						"id": 5714,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "Conditional",
																						"src": "15327:37:22",
																						"trueExpression": {
																							"arguments": [
																								{
																									"hexValue": "31",
																									"id": 5710,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "15357:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_1_by_1",
																										"typeString": "int_const 1"
																									},
																									"value": "1"
																								}
																							],
																							"expression": {
																								"argumentTypes": [
																									{
																										"typeIdentifier": "t_rational_1_by_1",
																										"typeString": "int_const 1"
																									}
																								],
																								"id": 5709,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"lValueRequested": false,
																								"nodeType": "ElementaryTypeNameExpression",
																								"src": "15351:4:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_type$_t_int8_$",
																									"typeString": "type(int8)"
																								},
																								"typeName": {
																									"id": 5708,
																									"name": "int8",
																									"nodeType": "ElementaryTypeName",
																									"src": "15351:4:22",
																									"typeDescriptions": {}
																								}
																							},
																							"id": 5711,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "typeConversion",
																							"lValueRequested": false,
																							"nameLocations": [],
																							"names": [],
																							"nodeType": "FunctionCall",
																							"src": "15351:8:22",
																							"tryCall": false,
																							"typeDescriptions": {
																								"typeIdentifier": "t_int8",
																								"typeString": "int8"
																							}
																						},
																						"typeDescriptions": {
																							"typeIdentifier": "t_int8",
																							"typeString": "int8"
																						}
																					},
																					"functionReturnParameters": 5620,
																					"id": 5715,
																					"nodeType": "Return",
																					"src": "15320:44:22"
																				},
																				"id": 5716,
																				"nodeType": "IfStatement",
																				"src": "15280:84:22",
																				"trueBody": {
																					"expression": {
																						"hexValue": "31",
																						"id": 5703,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "15302:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1_by_1",
																							"typeString": "int_const 1"
																						},
																						"value": "1"
																					},
																					"functionReturnParameters": 5620,
																					"id": 5704,
																					"nodeType": "Return",
																					"src": "15295:8:22"
																				}
																			}
																		]
																	},
																	"id": 5718,
																	"nodeType": "IfStatement",
																	"src": "15138:237:22",
																	"trueBody": {
																		"id": 5701,
																		"nodeType": "Block",
																		"src": "15153:109:22",
																		"statements": [
																			{
																				"condition": {
																					"id": 5685,
																					"name": "negativeY",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5676,
																					"src": "15169:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"expression": {
																						"id": 5698,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "UnaryOperation",
																						"operator": "-",
																						"prefix": true,
																						"src": "15248:2:22",
																						"subExpression": {
																							"hexValue": "31",
																							"id": 5697,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "15249:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_minus_1_by_1",
																							"typeString": "int_const -1"
																						}
																					},
																					"functionReturnParameters": 5620,
																					"id": 5699,
																					"nodeType": "Return",
																					"src": "15241:9:22"
																				},
																				"id": 5700,
																				"nodeType": "IfStatement",
																				"src": "15165:85:22",
																				"trueBody": {
																					"expression": {
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_uint128",
																								"typeString": "uint128"
																							},
																							"id": 5688,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 5686,
																								"name": "absoluteX",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5622,
																								"src": "15187:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": ">",
																							"rightExpression": {
																								"id": 5687,
																								"name": "absoluteY",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5637,
																								"src": "15199:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							},
																							"src": "15187:21:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"falseExpression": {
																							"arguments": [
																								{
																									"hexValue": "31",
																									"id": 5693,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "15222:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_1_by_1",
																										"typeString": "int_const 1"
																									},
																									"value": "1"
																								}
																							],
																							"expression": {
																								"argumentTypes": [
																									{
																										"typeIdentifier": "t_rational_1_by_1",
																										"typeString": "int_const 1"
																									}
																								],
																								"id": 5692,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"lValueRequested": false,
																								"nodeType": "ElementaryTypeNameExpression",
																								"src": "15216:4:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_type$_t_int8_$",
																									"typeString": "type(int8)"
																								},
																								"typeName": {
																									"id": 5691,
																									"name": "int8",
																									"nodeType": "ElementaryTypeName",
																									"src": "15216:4:22",
																									"typeDescriptions": {}
																								}
																							},
																							"id": 5694,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "typeConversion",
																							"lValueRequested": false,
																							"nameLocations": [],
																							"names": [],
																							"nodeType": "FunctionCall",
																							"src": "15216:8:22",
																							"tryCall": false,
																							"typeDescriptions": {
																								"typeIdentifier": "t_int8",
																								"typeString": "int8"
																							}
																						},
																						"id": 5695,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "Conditional",
																						"src": "15187:37:22",
																						"trueExpression": {
																							"id": 5690,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "UnaryOperation",
																							"operator": "-",
																							"prefix": true,
																							"src": "15211:2:22",
																							"subExpression": {
																								"hexValue": "31",
																								"id": 5689,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "15212:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_1_by_1",
																									"typeString": "int_const 1"
																								},
																								"value": "1"
																							},
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_minus_1_by_1",
																								"typeString": "int_const -1"
																							}
																						},
																						"typeDescriptions": {
																							"typeIdentifier": "t_int8",
																							"typeString": "int8"
																						}
																					},
																					"functionReturnParameters": 5620,
																					"id": 5696,
																					"nodeType": "Return",
																					"src": "15180:44:22"
																				}
																			}
																		]
																	}
																}
															]
														},
														"id": 5720,
														"nodeType": "IfStatement",
														"src": "14942:441:22",
														"trueBody": {
															"expression": {
																"hexValue": "30",
																"id": 5664,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "14961:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"functionReturnParameters": 5620,
															"id": 5665,
															"nodeType": "Return",
															"src": "14954:8:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5612,
										"nodeType": "StructuredDocumentation",
										"src": "14183:243:22",
										"text": " Calculate sign (x - y).  Revert if either argument is NaN, or both\n arguments are infinities of the same sign. \n @param x quadruple precision number\n @param y quadruple precision number\n @return sign (x - y)"
									},
									"id": 5723,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "cmp",
									"nameLocation": "14438:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5617,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5614,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "14451:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5723,
												"src": "14443:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5613,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "14443:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5616,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "14462:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5723,
												"src": "14454:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5615,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "14454:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14442:22:22"
									},
									"returnParameters": {
										"id": 5620,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5619,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5723,
												"src": "14488:4:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int8",
													"typeString": "int8"
												},
												"typeName": {
													"id": 5618,
													"name": "int8",
													"nodeType": "ElementaryTypeName",
													"src": "14488:4:22",
													"typeDescriptions": {
														"typeIdentifier": "t_int8",
														"typeString": "int8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14487:6:22"
									},
									"scope": 9524,
									"src": "14429:964:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5750,
										"nodeType": "Block",
										"src": "15705:186:22",
										"statements": [
											{
												"id": 5749,
												"nodeType": "UncheckedBlock",
												"src": "15711:176:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															},
															"id": 5735,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5733,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5726,
																"src": "15733:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"id": 5734,
																"name": "y",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5728,
																"src": "15738:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"src": "15733:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"expression": {
																"hexValue": "66616c7365",
																"id": 5746,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "15875:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "false"
															},
															"functionReturnParameters": 5732,
															"id": 5747,
															"nodeType": "Return",
															"src": "15868:12:22"
														},
														"id": 5748,
														"nodeType": "IfStatement",
														"src": "15729:151:22",
														"trueBody": {
															"id": 5745,
															"nodeType": "Block",
															"src": "15741:121:22",
															"statements": [
																{
																	"expression": {
																		"commonType": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		},
																		"id": 5743,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 5741,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 5738,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5726,
																						"src": "15767:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 5737,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "15758:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 5736,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "15758:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5739,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "15758:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																				"id": 5740,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "15772:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5727"
																				},
																				"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																			},
																			"src": "15758:48:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"hexValue": "30783746464630303030303030303030303030303030303030303030303030303030",
																			"id": 5742,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "15819:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_170135991163610696904058773219554885632_by_1",
																				"typeString": "int_const 1701...(31 digits omitted)...5632"
																			},
																			"value": "0x7FFF0000000000000000000000000000"
																		},
																		"src": "15758:95:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"functionReturnParameters": 5732,
																	"id": 5744,
																	"nodeType": "Return",
																	"src": "15751:102:22"
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5724,
										"nodeType": "StructuredDocumentation",
										"src": "15397:241:22",
										"text": " Test whether x equals y.  NaN, infinity, and -infinity are not equal to\n anything. \n @param x quadruple precision number\n @param y quadruple precision number\n @return true if x equals to y, false otherwise"
									},
									"id": 5751,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "eq",
									"nameLocation": "15650:2:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5729,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5726,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "15662:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5751,
												"src": "15654:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5725,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "15654:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5728,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "15673:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 5751,
												"src": "15665:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5727,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "15665:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15653:22:22"
									},
									"returnParameters": {
										"id": 5732,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5731,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 5751,
												"src": "15699:4:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5730,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "15699:4:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15698:6:22"
									},
									"scope": 9524,
									"src": "15641:250:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6217,
										"nodeType": "Block",
										"src": "16433:3754:22",
										"statements": [
											{
												"id": 6216,
												"nodeType": "UncheckedBlock",
												"src": "16439:3744:22",
												"statements": [
													{
														"assignments": [
															5762
														],
														"declarations": [
															{
																"constant": false,
																"id": 5762,
																"mutability": "mutable",
																"name": "xExponent",
																"nameLocation": "16465:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6216,
																"src": "16457:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5761,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "16457:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5771,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5770,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5768,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5765,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5754,
																			"src": "16486:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5764,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "16477:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5763,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "16477:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5766,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "16477:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 5767,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16492:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "16477:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5769,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "16498:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "16477:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "16457:47:22"
													},
													{
														"assignments": [
															5773
														],
														"declarations": [
															{
																"constant": false,
																"id": 5773,
																"mutability": "mutable",
																"name": "yExponent",
																"nameLocation": "16520:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6216,
																"src": "16512:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 5772,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "16512:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 5782,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 5781,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 5779,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 5776,
																			"name": "y",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5756,
																			"src": "16541:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 5775,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "16532:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 5774,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "16532:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 5777,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "16532:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 5778,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16547:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "16532:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5780,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "16553:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "16532:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "16512:47:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 5785,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 5783,
																"name": "xExponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 5762,
																"src": "16572:9:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 5784,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "16585:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "16572:19:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 5804,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 5802,
																	"name": "yExponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5773,
																	"src": "16733:9:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "307837464646",
																	"id": 5803,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16746:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32767_by_1",
																		"typeString": "int_const 32767"
																	},
																	"value": "0x7FFF"
																},
																"src": "16733:19:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 6213,
																"nodeType": "Block",
																"src": "16775:3402:22",
																"statements": [
																	{
																		"assignments": [
																			5808
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 5808,
																				"mutability": "mutable",
																				"name": "xSign",
																				"nameLocation": "16790:5:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6213,
																				"src": "16785:10:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"typeName": {
																					"id": 5807,
																					"name": "bool",
																					"nodeType": "ElementaryTypeName",
																					"src": "16785:4:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 5815,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 5814,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 5811,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5754,
																						"src": "16807:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 5810,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "16798:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 5809,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "16798:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5812,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "16798:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">=",
																			"rightExpression": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 5813,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "16813:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"src": "16798:49:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "16785:62:22"
																	},
																	{
																		"assignments": [
																			5817
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 5817,
																				"mutability": "mutable",
																				"name": "xSignifier",
																				"nameLocation": "16865:10:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6213,
																				"src": "16857:18:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 5816,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "16857:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 5824,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 5823,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 5820,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5754,
																						"src": "16887:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 5819,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "16878:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 5818,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "16878:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5821,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "16878:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																				"id": 5822,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "16892:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																					"typeString": "int_const 5192...(26 digits omitted)...0095"
																				},
																				"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																			},
																			"src": "16878:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "16857:65:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 5827,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 5825,
																				"name": "xExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5762,
																				"src": "16936:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 5826,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "16949:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "16936:14:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"id": 5834,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5832,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5817,
																					"src": "16980:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "|=",
																				"rightHandSide": {
																					"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																					"id": 5833,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "16994:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0096"
																					},
																					"value": "0x10000000000000000000000000000"
																				},
																				"src": "16980:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5835,
																			"nodeType": "ExpressionStatement",
																			"src": "16980:45:22"
																		},
																		"id": 5836,
																		"nodeType": "IfStatement",
																		"src": "16932:93:22",
																		"trueBody": {
																			"expression": {
																				"id": 5830,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5828,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5762,
																					"src": "16952:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "31",
																					"id": 5829,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "16964:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_1_by_1",
																						"typeString": "int_const 1"
																					},
																					"value": "1"
																				},
																				"src": "16952:13:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5831,
																			"nodeType": "ExpressionStatement",
																			"src": "16952:13:22"
																		}
																	},
																	{
																		"assignments": [
																			5838
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 5838,
																				"mutability": "mutable",
																				"name": "ySign",
																				"nameLocation": "17041:5:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6213,
																				"src": "17036:10:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"typeName": {
																					"id": 5837,
																					"name": "bool",
																					"nodeType": "ElementaryTypeName",
																					"src": "17036:4:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 5845,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 5844,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 5841,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5756,
																						"src": "17058:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 5840,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "17049:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 5839,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "17049:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5842,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "17049:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">=",
																			"rightExpression": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 5843,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "17064:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"src": "17049:49:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "17036:62:22"
																	},
																	{
																		"assignments": [
																			5847
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 5847,
																				"mutability": "mutable",
																				"name": "ySignifier",
																				"nameLocation": "17116:10:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6213,
																				"src": "17108:18:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 5846,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "17108:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 5854,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 5853,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 5850,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5756,
																						"src": "17138:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 5849,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "17129:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 5848,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "17129:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 5851,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "17129:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																				"id": 5852,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "17143:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																					"typeString": "int_const 5192...(26 digits omitted)...0095"
																				},
																				"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																			},
																			"src": "17129:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "17108:65:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 5857,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 5855,
																				"name": "yExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5773,
																				"src": "17187:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 5856,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "17200:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "17187:14:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"id": 5864,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5862,
																					"name": "ySignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5847,
																					"src": "17231:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "|=",
																				"rightHandSide": {
																					"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																					"id": 5863,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "17245:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0096"
																					},
																					"value": "0x10000000000000000000000000000"
																				},
																				"src": "17231:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5865,
																			"nodeType": "ExpressionStatement",
																			"src": "17231:45:22"
																		},
																		"id": 5866,
																		"nodeType": "IfStatement",
																		"src": "17183:93:22",
																		"trueBody": {
																			"expression": {
																				"id": 5860,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 5858,
																					"name": "yExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5773,
																					"src": "17203:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "31",
																					"id": 5859,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "17215:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_1_by_1",
																						"typeString": "int_const 1"
																					},
																					"value": "1"
																				},
																				"src": "17203:13:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 5861,
																			"nodeType": "ExpressionStatement",
																			"src": "17203:13:22"
																		}
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 5869,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 5867,
																				"name": "xSignifier",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 5817,
																				"src": "17291:10:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 5868,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "17305:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "17291:15:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 5879,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 5877,
																					"name": "ySignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5847,
																					"src": "17372:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 5878,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "17386:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "17372:15:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"id": 6210,
																				"nodeType": "Block",
																				"src": "17449:2720:22",
																				"statements": [
																					{
																						"assignments": [
																							5888
																						],
																						"declarations": [
																							{
																								"constant": false,
																								"id": 5888,
																								"mutability": "mutable",
																								"name": "delta",
																								"nameLocation": "17468:5:22",
																								"nodeType": "VariableDeclaration",
																								"scope": 6210,
																								"src": "17461:12:22",
																								"stateVariable": false,
																								"storageLocation": "default",
																								"typeDescriptions": {
																									"typeIdentifier": "t_int256",
																									"typeString": "int256"
																								},
																								"typeName": {
																									"id": 5887,
																									"name": "int256",
																									"nodeType": "ElementaryTypeName",
																									"src": "17461:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_int256",
																										"typeString": "int256"
																									}
																								},
																								"visibility": "internal"
																							}
																						],
																						"id": 5898,
																						"initialValue": {
																							"commonType": {
																								"typeIdentifier": "t_int256",
																								"typeString": "int256"
																							},
																							"id": 5897,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"arguments": [
																									{
																										"id": 5891,
																										"name": "xExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 5762,
																										"src": "17484:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									],
																									"id": 5890,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "17476:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_int256_$",
																										"typeString": "type(int256)"
																									},
																									"typeName": {
																										"id": 5889,
																										"name": "int256",
																										"nodeType": "ElementaryTypeName",
																										"src": "17476:6:22",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 5892,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "17476:18:22",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_int256",
																									"typeString": "int256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "-",
																							"rightExpression": {
																								"arguments": [
																									{
																										"id": 5895,
																										"name": "yExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 5773,
																										"src": "17505:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									],
																									"id": 5894,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "17497:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_int256_$",
																										"typeString": "type(int256)"
																									},
																									"typeName": {
																										"id": 5893,
																										"name": "int256",
																										"nodeType": "ElementaryTypeName",
																										"src": "17497:6:22",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 5896,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "17497:18:22",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_int256",
																									"typeString": "int256"
																								}
																							},
																							"src": "17476:39:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_int256",
																								"typeString": "int256"
																							}
																						},
																						"nodeType": "VariableDeclarationStatement",
																						"src": "17461:54:22"
																					},
																					{
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							},
																							"id": 5901,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 5899,
																								"name": "xSign",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5808,
																								"src": "17534:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "==",
																							"rightExpression": {
																								"id": 5900,
																								"name": "ySign",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 5838,
																								"src": "17543:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"src": "17534:14:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"falseBody": {
																							"id": 6208,
																							"nodeType": "Block",
																							"src": "18503:1656:22",
																							"statements": [
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_int256",
																											"typeString": "int256"
																										},
																										"id": 6004,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6002,
																											"name": "delta",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5888,
																											"src": "18521:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">",
																										"rightExpression": {
																											"hexValue": "30",
																											"id": 6003,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "18529:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_0_by_1",
																												"typeString": "int_const 0"
																											},
																											"value": "0"
																										},
																										"src": "18521:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"condition": {
																											"commonType": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											},
																											"id": 6016,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6014,
																												"name": "delta",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5888,
																												"src": "18619:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_int256",
																													"typeString": "int256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "<",
																											"rightExpression": {
																												"hexValue": "30",
																												"id": 6015,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "18627:1:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_0_by_1",
																													"typeString": "int_const 0"
																												},
																												"value": "0"
																											},
																											"src": "18619:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bool",
																												"typeString": "bool"
																											}
																										},
																										"id": 6028,
																										"nodeType": "IfStatement",
																										"src": "18615:103:22",
																										"trueBody": {
																											"id": 6027,
																											"nodeType": "Block",
																											"src": "18630:88:22",
																											"statements": [
																												{
																													"expression": {
																														"id": 6019,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftHandSide": {
																															"id": 6017,
																															"name": "ySignifier",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5847,
																															"src": "18646:10:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "Assignment",
																														"operator": "<<=",
																														"rightHandSide": {
																															"hexValue": "31",
																															"id": 6018,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "18661:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_1_by_1",
																																"typeString": "int_const 1"
																															},
																															"value": "1"
																														},
																														"src": "18646:16:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"id": 6020,
																													"nodeType": "ExpressionStatement",
																													"src": "18646:16:22"
																												},
																												{
																													"expression": {
																														"id": 6025,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftHandSide": {
																															"id": 6021,
																															"name": "xExponent",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5762,
																															"src": "18678:9:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "Assignment",
																														"operator": "=",
																														"rightHandSide": {
																															"commonType": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															},
																															"id": 6024,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"lValueRequested": false,
																															"leftExpression": {
																																"id": 6022,
																																"name": "yExponent",
																																"nodeType": "Identifier",
																																"overloadedDeclarations": [],
																																"referencedDeclaration": 5773,
																																"src": "18690:9:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"nodeType": "BinaryOperation",
																															"operator": "-",
																															"rightExpression": {
																																"hexValue": "31",
																																"id": 6023,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": true,
																																"kind": "number",
																																"lValueRequested": false,
																																"nodeType": "Literal",
																																"src": "18702:1:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_rational_1_by_1",
																																	"typeString": "int_const 1"
																																},
																																"value": "1"
																															},
																															"src": "18690:13:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "18678:25:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"id": 6026,
																													"nodeType": "ExpressionStatement",
																													"src": "18678:25:22"
																												}
																											]
																										}
																									},
																									"id": 6029,
																									"nodeType": "IfStatement",
																									"src": "18517:201:22",
																									"trueBody": {
																										"id": 6013,
																										"nodeType": "Block",
																										"src": "18532:77:22",
																										"statements": [
																											{
																												"expression": {
																													"id": 6007,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6005,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "18548:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "<<=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 6006,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18563:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "18548:16:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6008,
																												"nodeType": "ExpressionStatement",
																												"src": "18548:16:22"
																											},
																											{
																												"expression": {
																													"id": 6011,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6009,
																														"name": "xExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5762,
																														"src": "18580:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "-=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 6010,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18593:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "18580:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6012,
																												"nodeType": "ExpressionStatement",
																												"src": "18580:14:22"
																											}
																										]
																									}
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_int256",
																											"typeString": "int256"
																										},
																										"id": 6032,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6030,
																											"name": "delta",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5888,
																											"src": "18736:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">",
																										"rightExpression": {
																											"hexValue": "313132",
																											"id": 6031,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "18744:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_112_by_1",
																												"typeString": "int_const 112"
																											},
																											"value": "112"
																										},
																										"src": "18736:11:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"condition": {
																											"commonType": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											},
																											"id": 6039,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6037,
																												"name": "delta",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5888,
																												"src": "18786:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_int256",
																													"typeString": "int256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": ">",
																											"rightExpression": {
																												"hexValue": "31",
																												"id": 6038,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "18794:1:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_1_by_1",
																													"typeString": "int_const 1"
																												},
																												"value": "1"
																											},
																											"src": "18786:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bool",
																												"typeString": "bool"
																											}
																										},
																										"falseBody": {
																											"condition": {
																												"commonType": {
																													"typeIdentifier": "t_int256",
																													"typeString": "int256"
																												},
																												"id": 6059,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 6056,
																													"name": "delta",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5888,
																													"src": "18876:5:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_int256",
																														"typeString": "int256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "<",
																												"rightExpression": {
																													"id": 6058,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"lValueRequested": false,
																													"nodeType": "UnaryOperation",
																													"operator": "-",
																													"prefix": true,
																													"src": "18884:4:22",
																													"subExpression": {
																														"hexValue": "313132",
																														"id": 6057,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18885:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_112_by_1",
																															"typeString": "int_const 112"
																														},
																														"value": "112"
																													},
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_minus_112_by_1",
																														"typeString": "int_const -112"
																													}
																												},
																												"src": "18876:12:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bool",
																													"typeString": "bool"
																												}
																											},
																											"falseBody": {
																												"condition": {
																													"commonType": {
																														"typeIdentifier": "t_int256",
																														"typeString": "int256"
																													},
																													"id": 6067,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 6064,
																														"name": "delta",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5888,
																														"src": "18927:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_int256",
																															"typeString": "int256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "<",
																													"rightExpression": {
																														"id": 6066,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"lValueRequested": false,
																														"nodeType": "UnaryOperation",
																														"operator": "-",
																														"prefix": true,
																														"src": "18935:2:22",
																														"subExpression": {
																															"hexValue": "31",
																															"id": 6065,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "18936:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_1_by_1",
																																"typeString": "int_const 1"
																															},
																															"value": "1"
																														},
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_minus_1_by_1",
																															"typeString": "int_const -1"
																														}
																													},
																													"src": "18927:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bool",
																														"typeString": "bool"
																													}
																												},
																												"id": 6085,
																												"nodeType": "IfStatement",
																												"src": "18923:73:22",
																												"trueBody": {
																													"expression": {
																														"id": 6083,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftHandSide": {
																															"id": 6068,
																															"name": "xSignifier",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5817,
																															"src": "18939:10:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "Assignment",
																														"operator": "=",
																														"rightHandSide": {
																															"commonType": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															},
																															"id": 6082,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"lValueRequested": false,
																															"leftExpression": {
																																"components": [
																																	{
																																		"commonType": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		},
																																		"id": 6079,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": false,
																																		"lValueRequested": false,
																																		"leftExpression": {
																																			"commonType": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			},
																																			"id": 6071,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"leftExpression": {
																																				"id": 6069,
																																				"name": "xSignifier",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5817,
																																				"src": "18953:10:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_uint256",
																																					"typeString": "uint256"
																																				}
																																			},
																																			"nodeType": "BinaryOperation",
																																			"operator": "-",
																																			"rightExpression": {
																																				"hexValue": "31",
																																				"id": 6070,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"kind": "number",
																																				"lValueRequested": false,
																																				"nodeType": "Literal",
																																				"src": "18966:1:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_rational_1_by_1",
																																					"typeString": "int_const 1"
																																				},
																																				"value": "1"
																																			},
																																			"src": "18953:14:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		},
																																		"nodeType": "BinaryOperation",
																																		"operator": ">>",
																																		"rightExpression": {
																																			"arguments": [
																																				{
																																					"commonType": {
																																						"typeIdentifier": "t_int256",
																																						"typeString": "int256"
																																					},
																																					"id": 6077,
																																					"isConstant": false,
																																					"isLValue": false,
																																					"isPure": false,
																																					"lValueRequested": false,
																																					"leftExpression": {
																																						"id": 6075,
																																						"isConstant": false,
																																						"isLValue": false,
																																						"isPure": false,
																																						"lValueRequested": false,
																																						"nodeType": "UnaryOperation",
																																						"operator": "-",
																																						"prefix": true,
																																						"src": "18980:6:22",
																																						"subExpression": {
																																							"id": 6074,
																																							"name": "delta",
																																							"nodeType": "Identifier",
																																							"overloadedDeclarations": [],
																																							"referencedDeclaration": 5888,
																																							"src": "18981:5:22",
																																							"typeDescriptions": {
																																								"typeIdentifier": "t_int256",
																																								"typeString": "int256"
																																							}
																																						},
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_int256",
																																							"typeString": "int256"
																																						}
																																					},
																																					"nodeType": "BinaryOperation",
																																					"operator": "-",
																																					"rightExpression": {
																																						"hexValue": "31",
																																						"id": 6076,
																																						"isConstant": false,
																																						"isLValue": false,
																																						"isPure": true,
																																						"kind": "number",
																																						"lValueRequested": false,
																																						"nodeType": "Literal",
																																						"src": "18989:1:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_rational_1_by_1",
																																							"typeString": "int_const 1"
																																						},
																																						"value": "1"
																																					},
																																					"src": "18980:10:22",
																																					"typeDescriptions": {
																																						"typeIdentifier": "t_int256",
																																						"typeString": "int256"
																																					}
																																				}
																																			],
																																			"expression": {
																																				"argumentTypes": [
																																					{
																																						"typeIdentifier": "t_int256",
																																						"typeString": "int256"
																																					}
																																				],
																																				"id": 6073,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"lValueRequested": false,
																																				"nodeType": "ElementaryTypeNameExpression",
																																				"src": "18971:7:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_type$_t_uint256_$",
																																					"typeString": "type(uint256)"
																																				},
																																				"typeName": {
																																					"id": 6072,
																																					"name": "uint256",
																																					"nodeType": "ElementaryTypeName",
																																					"src": "18971:7:22",
																																					"typeDescriptions": {}
																																				}
																																			},
																																			"id": 6078,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"kind": "typeConversion",
																																			"lValueRequested": false,
																																			"nameLocations": [],
																																			"names": [],
																																			"nodeType": "FunctionCall",
																																			"src": "18971:20:22",
																																			"tryCall": false,
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		},
																																		"src": "18953:38:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	}
																																],
																																"id": 6080,
																																"isConstant": false,
																																"isInlineArray": false,
																																"isLValue": false,
																																"isPure": false,
																																"lValueRequested": false,
																																"nodeType": "TupleExpression",
																																"src": "18952:40:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"nodeType": "BinaryOperation",
																															"operator": "+",
																															"rightExpression": {
																																"hexValue": "31",
																																"id": 6081,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": true,
																																"kind": "number",
																																"lValueRequested": false,
																																"nodeType": "Literal",
																																"src": "18995:1:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_rational_1_by_1",
																																	"typeString": "int_const 1"
																																},
																																"value": "1"
																															},
																															"src": "18952:44:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "18939:57:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"id": 6084,
																													"nodeType": "ExpressionStatement",
																													"src": "18939:57:22"
																												}
																											},
																											"id": 6086,
																											"nodeType": "IfStatement",
																											"src": "18872:124:22",
																											"trueBody": {
																												"expression": {
																													"id": 6062,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6060,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "18890:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 6061,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18903:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "18890:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6063,
																												"nodeType": "ExpressionStatement",
																												"src": "18890:14:22"
																											}
																										},
																										"id": 6087,
																										"nodeType": "IfStatement",
																										"src": "18782:214:22",
																										"trueBody": {
																											"expression": {
																												"id": 6054,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 6040,
																													"name": "ySignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5847,
																													"src": "18797:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 6053,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"components": [
																															{
																																"commonType": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																},
																																"id": 6050,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": false,
																																"lValueRequested": false,
																																"leftExpression": {
																																	"commonType": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	},
																																	"id": 6043,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftExpression": {
																																		"id": 6041,
																																		"name": "ySignifier",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5847,
																																		"src": "18811:10:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "BinaryOperation",
																																	"operator": "-",
																																	"rightExpression": {
																																		"hexValue": "31",
																																		"id": 6042,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": true,
																																		"kind": "number",
																																		"lValueRequested": false,
																																		"nodeType": "Literal",
																																		"src": "18824:1:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_rational_1_by_1",
																																			"typeString": "int_const 1"
																																		},
																																		"value": "1"
																																	},
																																	"src": "18811:14:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"nodeType": "BinaryOperation",
																																"operator": ">>",
																																"rightExpression": {
																																	"arguments": [
																																		{
																																			"commonType": {
																																				"typeIdentifier": "t_int256",
																																				"typeString": "int256"
																																			},
																																			"id": 6048,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"leftExpression": {
																																				"id": 6046,
																																				"name": "delta",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5888,
																																				"src": "18838:5:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_int256",
																																					"typeString": "int256"
																																				}
																																			},
																																			"nodeType": "BinaryOperation",
																																			"operator": "-",
																																			"rightExpression": {
																																				"hexValue": "31",
																																				"id": 6047,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"kind": "number",
																																				"lValueRequested": false,
																																				"nodeType": "Literal",
																																				"src": "18846:1:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_rational_1_by_1",
																																					"typeString": "int_const 1"
																																				},
																																				"value": "1"
																																			},
																																			"src": "18838:9:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_int256",
																																				"typeString": "int256"
																																			}
																																		}
																																	],
																																	"expression": {
																																		"argumentTypes": [
																																			{
																																				"typeIdentifier": "t_int256",
																																				"typeString": "int256"
																																			}
																																		],
																																		"id": 6045,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": true,
																																		"lValueRequested": false,
																																		"nodeType": "ElementaryTypeNameExpression",
																																		"src": "18829:7:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_type$_t_uint256_$",
																																			"typeString": "type(uint256)"
																																		},
																																		"typeName": {
																																			"id": 6044,
																																			"name": "uint256",
																																			"nodeType": "ElementaryTypeName",
																																			"src": "18829:7:22",
																																			"typeDescriptions": {}
																																		}
																																	},
																																	"id": 6049,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"kind": "typeConversion",
																																	"lValueRequested": false,
																																	"nameLocations": [],
																																	"names": [],
																																	"nodeType": "FunctionCall",
																																	"src": "18829:19:22",
																																	"tryCall": false,
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"src": "18811:37:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															}
																														],
																														"id": 6051,
																														"isConstant": false,
																														"isInlineArray": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"nodeType": "TupleExpression",
																														"src": "18810:39:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "+",
																													"rightExpression": {
																														"hexValue": "31",
																														"id": 6052,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18852:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "18810:43:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "18797:56:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 6055,
																											"nodeType": "ExpressionStatement",
																											"src": "18797:56:22"
																										}
																									},
																									"id": 6088,
																									"nodeType": "IfStatement",
																									"src": "18732:264:22",
																									"trueBody": {
																										"expression": {
																											"id": 6035,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 6033,
																												"name": "ySignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5847,
																												"src": "18749:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "=",
																											"rightHandSide": {
																												"hexValue": "31",
																												"id": 6034,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "18762:1:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_1_by_1",
																													"typeString": "int_const 1"
																												},
																												"value": "1"
																											},
																											"src": "18749:14:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 6036,
																										"nodeType": "ExpressionStatement",
																										"src": "18749:14:22"
																									}
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6091,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6089,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5817,
																											"src": "19015:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">=",
																										"rightExpression": {
																											"id": 6090,
																											"name": "ySignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5847,
																											"src": "19029:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "19015:24:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"id": 6106,
																										"nodeType": "Block",
																										"src": "19084:96:22",
																										"statements": [
																											{
																												"expression": {
																													"id": 6100,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6096,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "19100:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "=",
																													"rightHandSide": {
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 6099,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"id": 6097,
																															"name": "ySignifier",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5847,
																															"src": "19113:10:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "-",
																														"rightExpression": {
																															"id": 6098,
																															"name": "xSignifier",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5817,
																															"src": "19126:10:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "19113:23:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "19100:36:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6101,
																												"nodeType": "ExpressionStatement",
																												"src": "19100:36:22"
																											},
																											{
																												"expression": {
																													"id": 6104,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6102,
																														"name": "xSign",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5808,
																														"src": "19152:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_bool",
																															"typeString": "bool"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "=",
																													"rightHandSide": {
																														"id": 6103,
																														"name": "ySign",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5838,
																														"src": "19160:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_bool",
																															"typeString": "bool"
																														}
																													},
																													"src": "19152:13:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bool",
																														"typeString": "bool"
																													}
																												},
																												"id": 6105,
																												"nodeType": "ExpressionStatement",
																												"src": "19152:13:22"
																											}
																										]
																									},
																									"id": 6107,
																									"nodeType": "IfStatement",
																									"src": "19011:169:22",
																									"trueBody": {
																										"expression": {
																											"id": 6094,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 6092,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5817,
																												"src": "19041:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "-=",
																											"rightHandSide": {
																												"id": 6093,
																												"name": "ySignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5847,
																												"src": "19055:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "19041:24:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 6095,
																										"nodeType": "ExpressionStatement",
																										"src": "19041:24:22"
																									}
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6110,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6108,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5817,
																											"src": "19198:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "==",
																										"rightExpression": {
																											"hexValue": "30",
																											"id": 6109,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "19212:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_0_by_1",
																												"typeString": "int_const 0"
																											},
																											"value": "0"
																										},
																										"src": "19198:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"id": 6113,
																									"nodeType": "IfStatement",
																									"src": "19194:55:22",
																									"trueBody": {
																										"expression": {
																											"id": 6111,
																											"name": "POSITIVE_ZERO",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 4337,
																											"src": "19236:13:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"functionReturnParameters": 5760,
																										"id": 6112,
																										"nodeType": "Return",
																										"src": "19229:20:22"
																									}
																								},
																								{
																									"assignments": [
																										6115
																									],
																									"declarations": [
																										{
																											"constant": false,
																											"id": 6115,
																											"mutability": "mutable",
																											"name": "msb",
																											"nameLocation": "19272:3:22",
																											"nodeType": "VariableDeclaration",
																											"scope": 6208,
																											"src": "19264:11:22",
																											"stateVariable": false,
																											"storageLocation": "default",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"typeName": {
																												"id": 6114,
																												"name": "uint256",
																												"nodeType": "ElementaryTypeName",
																												"src": "19264:7:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"visibility": "internal"
																										}
																									],
																									"id": 6119,
																									"initialValue": {
																										"arguments": [
																											{
																												"id": 6117,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5817,
																												"src": "19298:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											}
																										],
																										"expression": {
																											"argumentTypes": [
																												{
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											],
																											"id": 6116,
																											"name": "mostSignificantBit",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 9523,
																											"src": "19278:18:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																												"typeString": "function (uint256) pure returns (uint256)"
																											}
																										},
																										"id": 6118,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"kind": "functionCall",
																										"lValueRequested": false,
																										"nameLocations": [],
																										"names": [],
																										"nodeType": "FunctionCall",
																										"src": "19278:31:22",
																										"tryCall": false,
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "VariableDeclarationStatement",
																									"src": "19264:45:22"
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6122,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6120,
																											"name": "msb",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6115,
																											"src": "19328:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "==",
																										"rightExpression": {
																											"hexValue": "313133",
																											"id": 6121,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "19335:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_113_by_1",
																												"typeString": "int_const 113"
																											},
																											"value": "113"
																										},
																										"src": "19328:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"condition": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6138,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6136,
																												"name": "msb",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6115,
																												"src": "19472:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "<",
																											"rightExpression": {
																												"hexValue": "313132",
																												"id": 6137,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "19478:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_112_by_1",
																													"typeString": "int_const 112"
																												},
																												"value": "112"
																											},
																											"src": "19472:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bool",
																												"typeString": "bool"
																											}
																										},
																										"falseBody": {
																											"expression": {
																												"id": 6176,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 6174,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5817,
																													"src": "19819:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "&=",
																												"rightHandSide": {
																													"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																													"id": 6175,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "19833:30:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																														"typeString": "int_const 5192...(26 digits omitted)...0095"
																													},
																													"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																												},
																												"src": "19819:44:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 6177,
																											"nodeType": "ExpressionStatement",
																											"src": "19819:44:22"
																										},
																										"id": 6178,
																										"nodeType": "IfStatement",
																										"src": "19468:395:22",
																										"trueBody": {
																											"id": 6173,
																											"nodeType": "Block",
																											"src": "19483:330:22",
																											"statements": [
																												{
																													"assignments": [
																														6140
																													],
																													"declarations": [
																														{
																															"constant": false,
																															"id": 6140,
																															"mutability": "mutable",
																															"name": "shift",
																															"nameLocation": "19507:5:22",
																															"nodeType": "VariableDeclaration",
																															"scope": 6173,
																															"src": "19499:13:22",
																															"stateVariable": false,
																															"storageLocation": "default",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															},
																															"typeName": {
																																"id": 6139,
																																"name": "uint256",
																																"nodeType": "ElementaryTypeName",
																																"src": "19499:7:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"visibility": "internal"
																														}
																													],
																													"id": 6144,
																													"initialValue": {
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 6143,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"hexValue": "313132",
																															"id": 6141,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "19515:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_112_by_1",
																																"typeString": "int_const 112"
																															},
																															"value": "112"
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "-",
																														"rightExpression": {
																															"id": 6142,
																															"name": "msb",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 6115,
																															"src": "19521:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "19515:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "VariableDeclarationStatement",
																													"src": "19499:25:22"
																												},
																												{
																													"condition": {
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 6147,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"id": 6145,
																															"name": "xExponent",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5762,
																															"src": "19544:9:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "BinaryOperation",
																														"operator": ">",
																														"rightExpression": {
																															"id": 6146,
																															"name": "shift",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 6140,
																															"src": "19556:5:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "19544:17:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_bool",
																															"typeString": "bool"
																														}
																													},
																													"falseBody": {
																														"id": 6171,
																														"nodeType": "Block",
																														"src": "19705:94:22",
																														"statements": [
																															{
																																"expression": {
																																	"id": 6165,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftHandSide": {
																																		"id": 6161,
																																		"name": "xSignifier",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5817,
																																		"src": "19723:10:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "Assignment",
																																	"operator": "<<=",
																																	"rightHandSide": {
																																		"commonType": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		},
																																		"id": 6164,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": false,
																																		"lValueRequested": false,
																																		"leftExpression": {
																																			"id": 6162,
																																			"name": "xExponent",
																																			"nodeType": "Identifier",
																																			"overloadedDeclarations": [],
																																			"referencedDeclaration": 5762,
																																			"src": "19738:9:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		},
																																		"nodeType": "BinaryOperation",
																																		"operator": "-",
																																		"rightExpression": {
																																			"hexValue": "31",
																																			"id": 6163,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": true,
																																			"kind": "number",
																																			"lValueRequested": false,
																																			"nodeType": "Literal",
																																			"src": "19750:1:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_rational_1_by_1",
																																				"typeString": "int_const 1"
																																			},
																																			"value": "1"
																																		},
																																		"src": "19738:13:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"src": "19723:28:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"id": 6166,
																																"nodeType": "ExpressionStatement",
																																"src": "19723:28:22"
																															},
																															{
																																"expression": {
																																	"id": 6169,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftHandSide": {
																																		"id": 6167,
																																		"name": "xExponent",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5762,
																																		"src": "19769:9:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "Assignment",
																																	"operator": "=",
																																	"rightHandSide": {
																																		"hexValue": "30",
																																		"id": 6168,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": true,
																																		"kind": "number",
																																		"lValueRequested": false,
																																		"nodeType": "Literal",
																																		"src": "19781:1:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_rational_0_by_1",
																																			"typeString": "int_const 0"
																																		},
																																		"value": "0"
																																	},
																																	"src": "19769:13:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"id": 6170,
																																"nodeType": "ExpressionStatement",
																																"src": "19769:13:22"
																															}
																														]
																													},
																													"id": 6172,
																													"nodeType": "IfStatement",
																													"src": "19540:259:22",
																													"trueBody": {
																														"id": 6160,
																														"nodeType": "Block",
																														"src": "19563:136:22",
																														"statements": [
																															{
																																"expression": {
																																	"id": 6154,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftHandSide": {
																																		"id": 6148,
																																		"name": "xSignifier",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5817,
																																		"src": "19581:10:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "Assignment",
																																	"operator": "=",
																																	"rightHandSide": {
																																		"commonType": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		},
																																		"id": 6153,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": false,
																																		"lValueRequested": false,
																																		"leftExpression": {
																																			"commonType": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			},
																																			"id": 6151,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"leftExpression": {
																																				"id": 6149,
																																				"name": "xSignifier",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5817,
																																				"src": "19594:10:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_uint256",
																																					"typeString": "uint256"
																																				}
																																			},
																																			"nodeType": "BinaryOperation",
																																			"operator": "<<",
																																			"rightExpression": {
																																				"id": 6150,
																																				"name": "shift",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 6140,
																																				"src": "19608:5:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_uint256",
																																					"typeString": "uint256"
																																				}
																																			},
																																			"src": "19594:19:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		},
																																		"nodeType": "BinaryOperation",
																																		"operator": "&",
																																		"rightExpression": {
																																			"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																																			"id": 6152,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": true,
																																			"kind": "number",
																																			"lValueRequested": false,
																																			"nodeType": "Literal",
																																			"src": "19616:30:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																																				"typeString": "int_const 5192...(26 digits omitted)...0095"
																																			},
																																			"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																																		},
																																		"src": "19594:52:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"src": "19581:65:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"id": 6155,
																																"nodeType": "ExpressionStatement",
																																"src": "19581:65:22"
																															},
																															{
																																"expression": {
																																	"id": 6158,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftHandSide": {
																																		"id": 6156,
																																		"name": "xExponent",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5762,
																																		"src": "19664:9:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "Assignment",
																																	"operator": "-=",
																																	"rightHandSide": {
																																		"id": 6157,
																																		"name": "shift",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 6140,
																																		"src": "19677:5:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"src": "19664:18:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"id": 6159,
																																"nodeType": "ExpressionStatement",
																																"src": "19664:18:22"
																															}
																														]
																													}
																												}
																											]
																										}
																									},
																									"id": 6179,
																									"nodeType": "IfStatement",
																									"src": "19324:539:22",
																									"trueBody": {
																										"id": 6135,
																										"nodeType": "Block",
																										"src": "19340:122:22",
																										"statements": [
																											{
																												"expression": {
																													"id": 6129,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6123,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "19356:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "=",
																													"rightHandSide": {
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 6128,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"commonType": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															},
																															"id": 6126,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"lValueRequested": false,
																															"leftExpression": {
																																"id": 6124,
																																"name": "xSignifier",
																																"nodeType": "Identifier",
																																"overloadedDeclarations": [],
																																"referencedDeclaration": 5817,
																																"src": "19369:10:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"nodeType": "BinaryOperation",
																															"operator": ">>",
																															"rightExpression": {
																																"hexValue": "31",
																																"id": 6125,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": true,
																																"kind": "number",
																																"lValueRequested": false,
																																"nodeType": "Literal",
																																"src": "19383:1:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_rational_1_by_1",
																																	"typeString": "int_const 1"
																																},
																																"value": "1"
																															},
																															"src": "19369:15:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "&",
																														"rightExpression": {
																															"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																															"id": 6127,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "19387:30:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																																"typeString": "int_const 5192...(26 digits omitted)...0095"
																															},
																															"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																														},
																														"src": "19369:48:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "19356:61:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6130,
																												"nodeType": "ExpressionStatement",
																												"src": "19356:61:22"
																											},
																											{
																												"expression": {
																													"id": 6133,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 6131,
																														"name": "xExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5762,
																														"src": "19433:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "+=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 6132,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "19446:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "19433:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 6134,
																												"nodeType": "ExpressionStatement",
																												"src": "19433:14:22"
																											}
																										]
																									}
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6182,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6180,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5762,
																											"src": "19882:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "==",
																										"rightExpression": {
																											"hexValue": "307837464646",
																											"id": 6181,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "19895:6:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_32767_by_1",
																												"typeString": "int_const 32767"
																											},
																											"value": "0x7FFF"
																										},
																										"src": "19882:19:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"expression": {
																											"arguments": [
																												{
																													"arguments": [
																														{
																															"commonType": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															},
																															"id": 6203,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"lValueRequested": false,
																															"leftExpression": {
																																"commonType": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																},
																																"id": 6201,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": false,
																																"lValueRequested": false,
																																"leftExpression": {
																																	"components": [
																																		{
																																			"condition": {
																																				"id": 6192,
																																				"name": "xSign",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5808,
																																				"src": "20031:5:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_bool",
																																					"typeString": "bool"
																																				}
																																			},
																																			"falseExpression": {
																																				"hexValue": "30",
																																				"id": 6194,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"kind": "number",
																																				"lValueRequested": false,
																																				"nodeType": "Literal",
																																				"src": "20076:1:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_rational_0_by_1",
																																					"typeString": "int_const 0"
																																				},
																																				"value": "0"
																																			},
																																			"id": 6195,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"nodeType": "Conditional",
																																			"src": "20031:46:22",
																																			"trueExpression": {
																																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																																				"id": 6193,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"kind": "number",
																																				"lValueRequested": false,
																																				"nodeType": "Literal",
																																				"src": "20039:34:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																																				},
																																				"value": "0x80000000000000000000000000000000"
																																			},
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint128",
																																				"typeString": "uint128"
																																			}
																																		}
																																	],
																																	"id": 6196,
																																	"isConstant": false,
																																	"isInlineArray": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"nodeType": "TupleExpression",
																																	"src": "20030:48:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint128",
																																		"typeString": "uint128"
																																	}
																																},
																																"nodeType": "BinaryOperation",
																																"operator": "|",
																																"rightExpression": {
																																	"components": [
																																		{
																																			"commonType": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			},
																																			"id": 6199,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"leftExpression": {
																																				"id": 6197,
																																				"name": "xExponent",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5762,
																																				"src": "20098:9:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_uint256",
																																					"typeString": "uint256"
																																				}
																																			},
																																			"nodeType": "BinaryOperation",
																																			"operator": "<<",
																																			"rightExpression": {
																																				"hexValue": "313132",
																																				"id": 6198,
																																				"isConstant": false,
																																				"isLValue": false,
																																				"isPure": true,
																																				"kind": "number",
																																				"lValueRequested": false,
																																				"nodeType": "Literal",
																																				"src": "20111:3:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_rational_112_by_1",
																																					"typeString": "int_const 112"
																																				},
																																				"value": "112"
																																			},
																																			"src": "20098:16:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		}
																																	],
																																	"id": 6200,
																																	"isConstant": false,
																																	"isInlineArray": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"nodeType": "TupleExpression",
																																	"src": "20097:18:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"src": "20030:85:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"nodeType": "BinaryOperation",
																															"operator": "|",
																															"rightExpression": {
																																"id": 6202,
																																"name": "xSignifier",
																																"nodeType": "Identifier",
																																"overloadedDeclarations": [],
																																"referencedDeclaration": 5817,
																																"src": "20134:10:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"src": "20030:114:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														}
																													],
																													"expression": {
																														"argumentTypes": [
																															{
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														],
																														"id": 6191,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"lValueRequested": false,
																														"nodeType": "ElementaryTypeNameExpression",
																														"src": "20004:7:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_type$_t_uint128_$",
																															"typeString": "type(uint128)"
																														},
																														"typeName": {
																															"id": 6190,
																															"name": "uint128",
																															"nodeType": "ElementaryTypeName",
																															"src": "20004:7:22",
																															"typeDescriptions": {}
																														}
																													},
																													"id": 6204,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"kind": "typeConversion",
																													"lValueRequested": false,
																													"nameLocations": [],
																													"names": [],
																													"nodeType": "FunctionCall",
																													"src": "20004:141:22",
																													"tryCall": false,
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint128",
																														"typeString": "uint128"
																													}
																												}
																											],
																											"expression": {
																												"argumentTypes": [
																													{
																														"typeIdentifier": "t_uint128",
																														"typeString": "uint128"
																													}
																												],
																												"id": 6189,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"lValueRequested": false,
																												"nodeType": "ElementaryTypeNameExpression",
																												"src": "19995:7:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_type$_t_bytes16_$",
																													"typeString": "type(bytes16)"
																												},
																												"typeName": {
																													"id": 6188,
																													"name": "bytes16",
																													"nodeType": "ElementaryTypeName",
																													"src": "19995:7:22",
																													"typeDescriptions": {}
																												}
																											},
																											"id": 6205,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"kind": "typeConversion",
																											"lValueRequested": false,
																											"nameLocations": [],
																											"names": [],
																											"nodeType": "FunctionCall",
																											"src": "19995:151:22",
																											"tryCall": false,
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"functionReturnParameters": 5760,
																										"id": 6206,
																										"nodeType": "Return",
																										"src": "19988:158:22"
																									},
																									"id": 6207,
																									"nodeType": "IfStatement",
																									"src": "19878:268:22",
																									"trueBody": {
																										"expression": {
																											"condition": {
																												"id": 6183,
																												"name": "xSign",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5808,
																												"src": "19924:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bool",
																													"typeString": "bool"
																												}
																											},
																											"falseExpression": {
																												"id": 6185,
																												"name": "POSITIVE_INFINITY",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 4343,
																												"src": "19952:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											},
																											"id": 6186,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"nodeType": "Conditional",
																											"src": "19924:45:22",
																											"trueExpression": {
																												"id": 6184,
																												"name": "NEGATIVE_INFINITY",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 4346,
																												"src": "19932:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											},
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"functionReturnParameters": 5760,
																										"id": 6187,
																										"nodeType": "Return",
																										"src": "19917:52:22"
																									}
																								}
																							]
																						},
																						"id": 6209,
																						"nodeType": "IfStatement",
																						"src": "17530:2629:22",
																						"trueBody": {
																							"id": 6001,
																							"nodeType": "Block",
																							"src": "17550:947:22",
																							"statements": [
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_int256",
																											"typeString": "int256"
																										},
																										"id": 5904,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 5902,
																											"name": "delta",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5888,
																											"src": "17568:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">",
																										"rightExpression": {
																											"hexValue": "313132",
																											"id": 5903,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "17576:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_112_by_1",
																												"typeString": "int_const 112"
																											},
																											"value": "112"
																										},
																										"src": "17568:11:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"condition": {
																											"commonType": {
																												"typeIdentifier": "t_int256",
																												"typeString": "int256"
																											},
																											"id": 5909,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 5907,
																												"name": "delta",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5888,
																												"src": "17612:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_int256",
																													"typeString": "int256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": ">",
																											"rightExpression": {
																												"hexValue": "30",
																												"id": 5908,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "17620:1:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_0_by_1",
																													"typeString": "int_const 0"
																												},
																												"value": "0"
																											},
																											"src": "17612:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bool",
																												"typeString": "bool"
																											}
																										},
																										"falseBody": {
																											"condition": {
																												"commonType": {
																													"typeIdentifier": "t_int256",
																													"typeString": "int256"
																												},
																												"id": 5920,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 5917,
																													"name": "delta",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5888,
																													"src": "17676:5:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_int256",
																														"typeString": "int256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "<",
																												"rightExpression": {
																													"id": 5919,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"lValueRequested": false,
																													"nodeType": "UnaryOperation",
																													"operator": "-",
																													"prefix": true,
																													"src": "17684:4:22",
																													"subExpression": {
																														"hexValue": "313132",
																														"id": 5918,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "17685:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_112_by_1",
																															"typeString": "int_const 112"
																														},
																														"value": "112"
																													},
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_minus_112_by_1",
																														"typeString": "int_const -112"
																													}
																												},
																												"src": "17676:12:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bool",
																													"typeString": "bool"
																												}
																											},
																											"falseBody": {
																												"condition": {
																													"commonType": {
																														"typeIdentifier": "t_int256",
																														"typeString": "int256"
																													},
																													"id": 5925,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 5923,
																														"name": "delta",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5888,
																														"src": "17721:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_int256",
																															"typeString": "int256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "<",
																													"rightExpression": {
																														"hexValue": "30",
																														"id": 5924,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "17729:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_0_by_1",
																															"typeString": "int_const 0"
																														},
																														"value": "0"
																													},
																													"src": "17721:9:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bool",
																														"typeString": "bool"
																													}
																												},
																												"id": 5939,
																												"nodeType": "IfStatement",
																												"src": "17717:114:22",
																												"trueBody": {
																													"id": 5938,
																													"nodeType": "Block",
																													"src": "17732:99:22",
																													"statements": [
																														{
																															"expression": {
																																"id": 5932,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": false,
																																"lValueRequested": false,
																																"leftHandSide": {
																																	"id": 5926,
																																	"name": "xSignifier",
																																	"nodeType": "Identifier",
																																	"overloadedDeclarations": [],
																																	"referencedDeclaration": 5817,
																																	"src": "17748:10:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"nodeType": "Assignment",
																																"operator": ">>=",
																																"rightHandSide": {
																																	"arguments": [
																																		{
																																			"id": 5930,
																																			"isConstant": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"nodeType": "UnaryOperation",
																																			"operator": "-",
																																			"prefix": true,
																																			"src": "17772:6:22",
																																			"subExpression": {
																																				"id": 5929,
																																				"name": "delta",
																																				"nodeType": "Identifier",
																																				"overloadedDeclarations": [],
																																				"referencedDeclaration": 5888,
																																				"src": "17773:5:22",
																																				"typeDescriptions": {
																																					"typeIdentifier": "t_int256",
																																					"typeString": "int256"
																																				}
																																			},
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_int256",
																																				"typeString": "int256"
																																			}
																																		}
																																	],
																																	"expression": {
																																		"argumentTypes": [
																																			{
																																				"typeIdentifier": "t_int256",
																																				"typeString": "int256"
																																			}
																																		],
																																		"id": 5928,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": true,
																																		"lValueRequested": false,
																																		"nodeType": "ElementaryTypeNameExpression",
																																		"src": "17763:7:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_type$_t_uint256_$",
																																			"typeString": "type(uint256)"
																																		},
																																		"typeName": {
																																			"id": 5927,
																																			"name": "uint256",
																																			"nodeType": "ElementaryTypeName",
																																			"src": "17763:7:22",
																																			"typeDescriptions": {}
																																		}
																																	},
																																	"id": 5931,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"kind": "typeConversion",
																																	"lValueRequested": false,
																																	"nameLocations": [],
																																	"names": [],
																																	"nodeType": "FunctionCall",
																																	"src": "17763:16:22",
																																	"tryCall": false,
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"src": "17748:31:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"id": 5933,
																															"nodeType": "ExpressionStatement",
																															"src": "17748:31:22"
																														},
																														{
																															"expression": {
																																"id": 5936,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": false,
																																"lValueRequested": false,
																																"leftHandSide": {
																																	"id": 5934,
																																	"name": "xExponent",
																																	"nodeType": "Identifier",
																																	"overloadedDeclarations": [],
																																	"referencedDeclaration": 5762,
																																	"src": "17795:9:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"nodeType": "Assignment",
																																"operator": "=",
																																"rightHandSide": {
																																	"id": 5935,
																																	"name": "yExponent",
																																	"nodeType": "Identifier",
																																	"overloadedDeclarations": [],
																																	"referencedDeclaration": 5773,
																																	"src": "17807:9:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																},
																																"src": "17795:21:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_uint256",
																																	"typeString": "uint256"
																																}
																															},
																															"id": 5937,
																															"nodeType": "ExpressionStatement",
																															"src": "17795:21:22"
																														}
																													]
																												}
																											},
																											"id": 5940,
																											"nodeType": "IfStatement",
																											"src": "17672:159:22",
																											"trueBody": {
																												"expression": {
																													"id": 5921,
																													"name": "y",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5756,
																													"src": "17697:1:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bytes16",
																														"typeString": "bytes16"
																													}
																												},
																												"functionReturnParameters": 5760,
																												"id": 5922,
																												"nodeType": "Return",
																												"src": "17690:8:22"
																											}
																										},
																										"id": 5941,
																										"nodeType": "IfStatement",
																										"src": "17608:223:22",
																										"trueBody": {
																											"expression": {
																												"id": 5915,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 5910,
																													"name": "ySignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 5847,
																													"src": "17623:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": ">>=",
																												"rightHandSide": {
																													"arguments": [
																														{
																															"id": 5913,
																															"name": "delta",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5888,
																															"src": "17647:5:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_int256",
																																"typeString": "int256"
																															}
																														}
																													],
																													"expression": {
																														"argumentTypes": [
																															{
																																"typeIdentifier": "t_int256",
																																"typeString": "int256"
																															}
																														],
																														"id": 5912,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"lValueRequested": false,
																														"nodeType": "ElementaryTypeNameExpression",
																														"src": "17638:7:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_type$_t_uint256_$",
																															"typeString": "type(uint256)"
																														},
																														"typeName": {
																															"id": 5911,
																															"name": "uint256",
																															"nodeType": "ElementaryTypeName",
																															"src": "17638:7:22",
																															"typeDescriptions": {}
																														}
																													},
																													"id": 5914,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"kind": "typeConversion",
																													"lValueRequested": false,
																													"nameLocations": [],
																													"names": [],
																													"nodeType": "FunctionCall",
																													"src": "17638:15:22",
																													"tryCall": false,
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "17623:30:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 5916,
																											"nodeType": "ExpressionStatement",
																											"src": "17623:30:22"
																										}
																									},
																									"id": 5942,
																									"nodeType": "IfStatement",
																									"src": "17564:267:22",
																									"trueBody": {
																										"expression": {
																											"id": 5905,
																											"name": "x",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5754,
																											"src": "17588:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"functionReturnParameters": 5760,
																										"id": 5906,
																										"nodeType": "Return",
																										"src": "17581:8:22"
																									}
																								},
																								{
																									"expression": {
																										"id": 5945,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 5943,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5817,
																											"src": "17847:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "+=",
																										"rightHandSide": {
																											"id": 5944,
																											"name": "ySignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5847,
																											"src": "17861:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "17847:24:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 5946,
																									"nodeType": "ExpressionStatement",
																									"src": "17847:24:22"
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 5949,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 5947,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5817,
																											"src": "17892:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">=",
																										"rightExpression": {
																											"hexValue": "30783230303030303030303030303030303030303030303030303030303030",
																											"id": 5948,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "17906:31:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_10384593717069655257060992658440192_by_1",
																												"typeString": "int_const 1038...(27 digits omitted)...0192"
																											},
																											"value": "0x20000000000000000000000000000"
																										},
																										"src": "17892:45:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"id": 5959,
																									"nodeType": "IfStatement",
																									"src": "17888:128:22",
																									"trueBody": {
																										"id": 5958,
																										"nodeType": "Block",
																										"src": "17939:77:22",
																										"statements": [
																											{
																												"expression": {
																													"id": 5952,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 5950,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "17955:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": ">>=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 5951,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "17970:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "17955:16:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 5953,
																												"nodeType": "ExpressionStatement",
																												"src": "17955:16:22"
																											},
																											{
																												"expression": {
																													"id": 5956,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftHandSide": {
																														"id": 5954,
																														"name": "xExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5762,
																														"src": "17987:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "Assignment",
																													"operator": "+=",
																													"rightHandSide": {
																														"hexValue": "31",
																														"id": 5955,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18000:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_1_by_1",
																															"typeString": "int_const 1"
																														},
																														"value": "1"
																													},
																													"src": "17987:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"id": 5957,
																												"nodeType": "ExpressionStatement",
																												"src": "17987:14:22"
																											}
																										]
																									}
																								},
																								{
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 5962,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 5960,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 5762,
																											"src": "18036:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "==",
																										"rightExpression": {
																											"hexValue": "307837464646",
																											"id": 5961,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "18049:6:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_32767_by_1",
																												"typeString": "int_const 32767"
																											},
																											"value": "0x7FFF"
																										},
																										"src": "18036:19:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseBody": {
																										"id": 5999,
																										"nodeType": "Block",
																										"src": "18142:343:22",
																										"statements": [
																											{
																												"condition": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 5970,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 5968,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 5817,
																														"src": "18162:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "<",
																													"rightExpression": {
																														"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																														"id": 5969,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "18175:31:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																															"typeString": "int_const 5192...(26 digits omitted)...0096"
																														},
																														"value": "0x10000000000000000000000000000"
																													},
																													"src": "18162:44:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bool",
																														"typeString": "bool"
																													}
																												},
																												"falseBody": {
																													"expression": {
																														"id": 5977,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftHandSide": {
																															"id": 5975,
																															"name": "xSignifier",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5817,
																															"src": "18242:10:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "Assignment",
																														"operator": "&=",
																														"rightHandSide": {
																															"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																															"id": 5976,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "18256:30:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																																"typeString": "int_const 5192...(26 digits omitted)...0095"
																															},
																															"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																														},
																														"src": "18242:44:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"id": 5978,
																													"nodeType": "ExpressionStatement",
																													"src": "18242:44:22"
																												},
																												"id": 5979,
																												"nodeType": "IfStatement",
																												"src": "18158:128:22",
																												"trueBody": {
																													"expression": {
																														"id": 5973,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftHandSide": {
																															"id": 5971,
																															"name": "xExponent",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 5762,
																															"src": "18208:9:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"nodeType": "Assignment",
																														"operator": "=",
																														"rightHandSide": {
																															"hexValue": "30",
																															"id": 5972,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "18220:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_0_by_1",
																																"typeString": "int_const 0"
																															},
																															"value": "0"
																														},
																														"src": "18208:13:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"id": 5974,
																													"nodeType": "ExpressionStatement",
																													"src": "18208:13:22"
																												}
																											},
																											{
																												"expression": {
																													"arguments": [
																														{
																															"arguments": [
																																{
																																	"commonType": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	},
																																	"id": 5995,
																																	"isConstant": false,
																																	"isLValue": false,
																																	"isPure": false,
																																	"lValueRequested": false,
																																	"leftExpression": {
																																		"commonType": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		},
																																		"id": 5993,
																																		"isConstant": false,
																																		"isLValue": false,
																																		"isPure": false,
																																		"lValueRequested": false,
																																		"leftExpression": {
																																			"components": [
																																				{
																																					"condition": {
																																						"id": 5984,
																																						"name": "xSign",
																																						"nodeType": "Identifier",
																																						"overloadedDeclarations": [],
																																						"referencedDeclaration": 5808,
																																						"src": "18350:5:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_bool",
																																							"typeString": "bool"
																																						}
																																					},
																																					"falseExpression": {
																																						"hexValue": "30",
																																						"id": 5986,
																																						"isConstant": false,
																																						"isLValue": false,
																																						"isPure": true,
																																						"kind": "number",
																																						"lValueRequested": false,
																																						"nodeType": "Literal",
																																						"src": "18395:1:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_rational_0_by_1",
																																							"typeString": "int_const 0"
																																						},
																																						"value": "0"
																																					},
																																					"id": 5987,
																																					"isConstant": false,
																																					"isLValue": false,
																																					"isPure": false,
																																					"lValueRequested": false,
																																					"nodeType": "Conditional",
																																					"src": "18350:46:22",
																																					"trueExpression": {
																																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																																						"id": 5985,
																																						"isConstant": false,
																																						"isLValue": false,
																																						"isPure": true,
																																						"kind": "number",
																																						"lValueRequested": false,
																																						"nodeType": "Literal",
																																						"src": "18358:34:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																																							"typeString": "int_const 1701...(31 digits omitted)...5728"
																																						},
																																						"value": "0x80000000000000000000000000000000"
																																					},
																																					"typeDescriptions": {
																																						"typeIdentifier": "t_uint128",
																																						"typeString": "uint128"
																																					}
																																				}
																																			],
																																			"id": 5988,
																																			"isConstant": false,
																																			"isInlineArray": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"nodeType": "TupleExpression",
																																			"src": "18349:48:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint128",
																																				"typeString": "uint128"
																																			}
																																		},
																																		"nodeType": "BinaryOperation",
																																		"operator": "|",
																																		"rightExpression": {
																																			"components": [
																																				{
																																					"commonType": {
																																						"typeIdentifier": "t_uint256",
																																						"typeString": "uint256"
																																					},
																																					"id": 5991,
																																					"isConstant": false,
																																					"isLValue": false,
																																					"isPure": false,
																																					"lValueRequested": false,
																																					"leftExpression": {
																																						"id": 5989,
																																						"name": "xExponent",
																																						"nodeType": "Identifier",
																																						"overloadedDeclarations": [],
																																						"referencedDeclaration": 5762,
																																						"src": "18419:9:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_uint256",
																																							"typeString": "uint256"
																																						}
																																					},
																																					"nodeType": "BinaryOperation",
																																					"operator": "<<",
																																					"rightExpression": {
																																						"hexValue": "313132",
																																						"id": 5990,
																																						"isConstant": false,
																																						"isLValue": false,
																																						"isPure": true,
																																						"kind": "number",
																																						"lValueRequested": false,
																																						"nodeType": "Literal",
																																						"src": "18432:3:22",
																																						"typeDescriptions": {
																																							"typeIdentifier": "t_rational_112_by_1",
																																							"typeString": "int_const 112"
																																						},
																																						"value": "112"
																																					},
																																					"src": "18419:16:22",
																																					"typeDescriptions": {
																																						"typeIdentifier": "t_uint256",
																																						"typeString": "uint256"
																																					}
																																				}
																																			],
																																			"id": 5992,
																																			"isConstant": false,
																																			"isInlineArray": false,
																																			"isLValue": false,
																																			"isPure": false,
																																			"lValueRequested": false,
																																			"nodeType": "TupleExpression",
																																			"src": "18418:18:22",
																																			"typeDescriptions": {
																																				"typeIdentifier": "t_uint256",
																																				"typeString": "uint256"
																																			}
																																		},
																																		"src": "18349:87:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"nodeType": "BinaryOperation",
																																	"operator": "|",
																																	"rightExpression": {
																																		"id": 5994,
																																		"name": "xSignifier",
																																		"nodeType": "Identifier",
																																		"overloadedDeclarations": [],
																																		"referencedDeclaration": 5817,
																																		"src": "18457:10:22",
																																		"typeDescriptions": {
																																			"typeIdentifier": "t_uint256",
																																			"typeString": "uint256"
																																		}
																																	},
																																	"src": "18349:118:22",
																																	"typeDescriptions": {
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																}
																															],
																															"expression": {
																																"argumentTypes": [
																																	{
																																		"typeIdentifier": "t_uint256",
																																		"typeString": "uint256"
																																	}
																																],
																																"id": 5983,
																																"isConstant": false,
																																"isLValue": false,
																																"isPure": true,
																																"lValueRequested": false,
																																"nodeType": "ElementaryTypeNameExpression",
																																"src": "18321:7:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_type$_t_uint128_$",
																																	"typeString": "type(uint128)"
																																},
																																"typeName": {
																																	"id": 5982,
																																	"name": "uint128",
																																	"nodeType": "ElementaryTypeName",
																																	"src": "18321:7:22",
																																	"typeDescriptions": {}
																																}
																															},
																															"id": 5996,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"kind": "typeConversion",
																															"lValueRequested": false,
																															"nameLocations": [],
																															"names": [],
																															"nodeType": "FunctionCall",
																															"src": "18321:147:22",
																															"tryCall": false,
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint128",
																																"typeString": "uint128"
																															}
																														}
																													],
																													"expression": {
																														"argumentTypes": [
																															{
																																"typeIdentifier": "t_uint128",
																																"typeString": "uint128"
																															}
																														],
																														"id": 5981,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"lValueRequested": false,
																														"nodeType": "ElementaryTypeNameExpression",
																														"src": "18312:7:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_type$_t_bytes16_$",
																															"typeString": "type(bytes16)"
																														},
																														"typeName": {
																															"id": 5980,
																															"name": "bytes16",
																															"nodeType": "ElementaryTypeName",
																															"src": "18312:7:22",
																															"typeDescriptions": {}
																														}
																													},
																													"id": 5997,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"kind": "typeConversion",
																													"lValueRequested": false,
																													"nameLocations": [],
																													"names": [],
																													"nodeType": "FunctionCall",
																													"src": "18312:157:22",
																													"tryCall": false,
																													"typeDescriptions": {
																														"typeIdentifier": "t_bytes16",
																														"typeString": "bytes16"
																													}
																												},
																												"functionReturnParameters": 5760,
																												"id": 5998,
																												"nodeType": "Return",
																												"src": "18305:164:22"
																											}
																										]
																									},
																									"id": 6000,
																									"nodeType": "IfStatement",
																									"src": "18032:453:22",
																									"trueBody": {
																										"expression": {
																											"condition": {
																												"id": 5963,
																												"name": "xSign",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 5808,
																												"src": "18078:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bool",
																													"typeString": "bool"
																												}
																											},
																											"falseExpression": {
																												"id": 5965,
																												"name": "POSITIVE_INFINITY",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 4343,
																												"src": "18106:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											},
																											"id": 5966,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"nodeType": "Conditional",
																											"src": "18078:45:22",
																											"trueExpression": {
																												"id": 5964,
																												"name": "NEGATIVE_INFINITY",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 4346,
																												"src": "18086:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											},
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"functionReturnParameters": 5760,
																										"id": 5967,
																										"nodeType": "Return",
																										"src": "18071:52:22"
																									}
																								}
																							]
																						}
																					}
																				]
																			},
																			"id": 6211,
																			"nodeType": "IfStatement",
																			"src": "17368:2801:22",
																			"trueBody": {
																				"expression": {
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 5882,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 5880,
																							"name": "x",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 5754,
																							"src": "17396:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "==",
																						"rightExpression": {
																							"id": 5881,
																							"name": "NEGATIVE_ZERO",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 4340,
																							"src": "17401:13:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"src": "17396:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseExpression": {
																						"id": 5884,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5754,
																						"src": "17433:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"id": 5885,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "Conditional",
																					"src": "17396:38:22",
																					"trueExpression": {
																						"id": 5883,
																						"name": "POSITIVE_ZERO",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4337,
																						"src": "17417:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 5760,
																				"id": 5886,
																				"nodeType": "Return",
																				"src": "17389:45:22"
																			}
																		},
																		"id": 6212,
																		"nodeType": "IfStatement",
																		"src": "17287:2882:22",
																		"trueBody": {
																			"expression": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 5872,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 5870,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5756,
																						"src": "17315:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"id": 5871,
																						"name": "NEGATIVE_ZERO",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4340,
																						"src": "17320:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"src": "17315:18:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"id": 5874,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 5756,
																					"src": "17352:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"id": 5875,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "17315:38:22",
																				"trueExpression": {
																					"id": 5873,
																					"name": "POSITIVE_ZERO",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4337,
																					"src": "17336:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 5760,
																			"id": 5876,
																			"nodeType": "Return",
																			"src": "17308:45:22"
																		}
																	}
																]
															},
															"id": 6214,
															"nodeType": "IfStatement",
															"src": "16729:3448:22",
															"trueBody": {
																"expression": {
																	"id": 5805,
																	"name": "y",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5756,
																	"src": "16761:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"functionReturnParameters": 5760,
																"id": 5806,
																"nodeType": "Return",
																"src": "16754:8:22"
															}
														},
														"id": 6215,
														"nodeType": "IfStatement",
														"src": "16568:3609:22",
														"trueBody": {
															"id": 5801,
															"nodeType": "Block",
															"src": "16593:130:22",
															"statements": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 5788,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 5786,
																			"name": "yExponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5773,
																			"src": "16607:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "307837464646",
																			"id": 5787,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "16620:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32767_by_1",
																				"typeString": "int_const 32767"
																			},
																			"value": "0x7FFF"
																		},
																		"src": "16607:19:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"expression": {
																			"id": 5798,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 5754,
																			"src": "16712:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 5760,
																		"id": 5799,
																		"nodeType": "Return",
																		"src": "16705:8:22"
																	},
																	"id": 5800,
																	"nodeType": "IfStatement",
																	"src": "16603:110:22",
																	"trueBody": {
																		"id": 5797,
																		"nodeType": "Block",
																		"src": "16628:71:22",
																		"statements": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 5791,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 5789,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5754,
																						"src": "16645:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"id": 5790,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5756,
																						"src": "16650:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"src": "16645:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"expression": {
																						"id": 5794,
																						"name": "NaN",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4349,
																						"src": "16685:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 5760,
																					"id": 5795,
																					"nodeType": "Return",
																					"src": "16678:10:22"
																				},
																				"id": 5796,
																				"nodeType": "IfStatement",
																				"src": "16641:47:22",
																				"trueBody": {
																					"expression": {
																						"id": 5792,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 5754,
																						"src": "16660:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 5760,
																					"id": 5793,
																					"nodeType": "Return",
																					"src": "16653:8:22"
																				}
																			}
																		]
																	}
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 5752,
										"nodeType": "StructuredDocumentation",
										"src": "15895:467:22",
										"text": " Calculate x + y.  Special values behave in the following way:\n NaN + x = NaN for any x.\n Infinity + x = Infinity for any finite x.\n -Infinity + x = -Infinity for any finite x.\n Infinity + Infinity = Infinity.\n -Infinity + -Infinity = -Infinity.\n Infinity + -Infinity = -Infinity + Infinity = NaN.\n @param x quadruple precision number\n @param y quadruple precision number\n @return quadruple precision number"
									},
									"id": 6218,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "add",
									"nameLocation": "16374:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5757,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5754,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "16387:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6218,
												"src": "16379:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5753,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "16379:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5756,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "16398:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6218,
												"src": "16390:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5755,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "16390:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16378:22:22"
									},
									"returnParameters": {
										"id": 5760,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5759,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6218,
												"src": "16424:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 5758,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "16424:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16423:9:22"
									},
									"scope": 9524,
									"src": "16365:3822:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6236,
										"nodeType": "Block",
										"src": "20729:89:22",
										"statements": [
											{
												"id": 6235,
												"nodeType": "UncheckedBlock",
												"src": "20735:79:22",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"id": 6229,
																	"name": "x",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6221,
																	"src": "20765:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																{
																	"commonType": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	},
																	"id": 6232,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 6230,
																		"name": "y",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 6223,
																		"src": "20768:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "^",
																	"rightExpression": {
																		"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																		"id": 6231,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "20772:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																			"typeString": "int_const 1701...(31 digits omitted)...5728"
																		},
																		"value": "0x80000000000000000000000000000000"
																	},
																	"src": "20768:38:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	},
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																],
																"id": 6228,
																"name": "add",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6218,
																"src": "20760:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_bytes16_$_t_bytes16_$returns$_t_bytes16_$",
																	"typeString": "function (bytes16,bytes16) pure returns (bytes16)"
																}
															},
															"id": 6233,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20760:47:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 6227,
														"id": 6234,
														"nodeType": "Return",
														"src": "20753:54:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6219,
										"nodeType": "StructuredDocumentation",
										"src": "20191:467:22",
										"text": " Calculate x - y.  Special values behave in the following way:\n NaN - x = NaN for any x.\n Infinity - x = Infinity for any finite x.\n -Infinity - x = -Infinity for any finite x.\n Infinity - -Infinity = Infinity.\n -Infinity - Infinity = -Infinity.\n Infinity - Infinity = -Infinity - -Infinity = NaN.\n @param x quadruple precision number\n @param y quadruple precision number\n @return quadruple precision number"
									},
									"id": 6237,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sub",
									"nameLocation": "20670:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6224,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6221,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "20683:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6237,
												"src": "20675:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6220,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "20675:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6223,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "20694:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6237,
												"src": "20686:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6222,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "20686:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20674:22:22"
									},
									"returnParameters": {
										"id": 6227,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6226,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6237,
												"src": "20720:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6225,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "20720:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20719:9:22"
									},
									"scope": 9524,
									"src": "20661:157:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6535,
										"nodeType": "Block",
										"src": "21564:2417:22",
										"statements": [
											{
												"id": 6534,
												"nodeType": "UncheckedBlock",
												"src": "21570:2407:22",
												"statements": [
													{
														"assignments": [
															6248
														],
														"declarations": [
															{
																"constant": false,
																"id": 6248,
																"mutability": "mutable",
																"name": "xExponent",
																"nameLocation": "21596:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6534,
																"src": "21588:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 6247,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "21588:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 6257,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 6256,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 6254,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 6251,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6240,
																			"src": "21617:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 6250,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "21608:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 6249,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "21608:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 6252,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "21608:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 6253,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21623:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "21608:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6255,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "21629:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "21608:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "21588:47:22"
													},
													{
														"assignments": [
															6259
														],
														"declarations": [
															{
																"constant": false,
																"id": 6259,
																"mutability": "mutable",
																"name": "yExponent",
																"nameLocation": "21651:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6534,
																"src": "21643:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 6258,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "21643:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 6268,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 6267,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 6265,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 6262,
																			"name": "y",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6242,
																			"src": "21672:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 6261,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "21663:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 6260,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "21663:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 6263,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "21663:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 6264,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21678:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "21663:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6266,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "21684:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "21663:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "21643:47:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 6271,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 6269,
																"name": "xExponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6248,
																"src": "21703:9:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6270,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "21716:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "21703:19:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 6317,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 6315,
																	"name": "yExponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6259,
																	"src": "22120:9:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "307837464646",
																	"id": 6316,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22133:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32767_by_1",
																		"typeString": "int_const 32767"
																	},
																	"value": "0x7FFF"
																},
																"src": "22120:19:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 6531,
																"nodeType": "Block",
																"src": "22293:1678:22",
																"statements": [
																	{
																		"assignments": [
																			6334
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 6334,
																				"mutability": "mutable",
																				"name": "xSignifier",
																				"nameLocation": "22311:10:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6531,
																				"src": "22303:18:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 6333,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "22303:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 6341,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 6340,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 6337,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6240,
																						"src": "22333:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 6336,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "22324:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 6335,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "22324:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 6338,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "22324:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																				"id": 6339,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22338:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																					"typeString": "int_const 5192...(26 digits omitted)...0095"
																				},
																				"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																			},
																			"src": "22324:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "22303:65:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 6344,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 6342,
																				"name": "xExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6248,
																				"src": "22382:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 6343,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22395:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "22382:14:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"id": 6351,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 6349,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6334,
																					"src": "22426:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "|=",
																				"rightHandSide": {
																					"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																					"id": 6350,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22440:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0096"
																					},
																					"value": "0x10000000000000000000000000000"
																				},
																				"src": "22426:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6352,
																			"nodeType": "ExpressionStatement",
																			"src": "22426:45:22"
																		},
																		"id": 6353,
																		"nodeType": "IfStatement",
																		"src": "22378:93:22",
																		"trueBody": {
																			"expression": {
																				"id": 6347,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 6345,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6248,
																					"src": "22398:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "31",
																					"id": 6346,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22410:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_1_by_1",
																						"typeString": "int_const 1"
																					},
																					"value": "1"
																				},
																				"src": "22398:13:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6348,
																			"nodeType": "ExpressionStatement",
																			"src": "22398:13:22"
																		}
																	},
																	{
																		"assignments": [
																			6355
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 6355,
																				"mutability": "mutable",
																				"name": "ySignifier",
																				"nameLocation": "22490:10:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6531,
																				"src": "22482:18:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 6354,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "22482:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 6362,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 6361,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 6358,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6242,
																						"src": "22512:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 6357,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "22503:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 6356,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "22503:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 6359,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "22503:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																				"id": 6360,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22517:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																					"typeString": "int_const 5192...(26 digits omitted)...0095"
																				},
																				"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																			},
																			"src": "22503:44:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "22482:65:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 6365,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 6363,
																				"name": "yExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6259,
																				"src": "22561:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 6364,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22574:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "22561:14:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"id": 6372,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 6370,
																					"name": "ySignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6355,
																					"src": "22605:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "|=",
																				"rightHandSide": {
																					"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																					"id": 6371,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22619:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0096"
																					},
																					"value": "0x10000000000000000000000000000"
																				},
																				"src": "22605:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6373,
																			"nodeType": "ExpressionStatement",
																			"src": "22605:45:22"
																		},
																		"id": 6374,
																		"nodeType": "IfStatement",
																		"src": "22557:93:22",
																		"trueBody": {
																			"expression": {
																				"id": 6368,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 6366,
																					"name": "yExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6259,
																					"src": "22577:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"hexValue": "31",
																					"id": 6367,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22589:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_1_by_1",
																						"typeString": "int_const 1"
																					},
																					"value": "1"
																				},
																				"src": "22577:13:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6369,
																			"nodeType": "ExpressionStatement",
																			"src": "22577:13:22"
																		}
																	},
																	{
																		"expression": {
																			"id": 6377,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 6375,
																				"name": "xSignifier",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6334,
																				"src": "22661:10:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "*=",
																			"rightHandSide": {
																				"id": 6376,
																				"name": "ySignifier",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6355,
																				"src": "22675:10:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "22661:24:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 6378,
																		"nodeType": "ExpressionStatement",
																		"src": "22661:24:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 6381,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 6379,
																				"name": "xSignifier",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6334,
																				"src": "22699:10:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 6380,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22713:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "22699:15:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 6394,
																		"nodeType": "IfStatement",
																		"src": "22695:132:22",
																		"trueBody": {
																			"expression": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6389,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6387,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									},
																									"id": 6384,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 6382,
																										"name": "x",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6240,
																										"src": "22734:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "^",
																									"rightExpression": {
																										"id": 6383,
																										"name": "y",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6242,
																										"src": "22738:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										}
																									},
																									"src": "22734:5:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								}
																							],
																							"id": 6385,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "22733:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "&",
																						"rightExpression": {
																							"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																							"id": 6386,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "22743:34:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																								"typeString": "int_const 1701...(31 digits omitted)...5728"
																							},
																							"value": "0x80000000000000000000000000000000"
																						},
																						"src": "22733:44:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 6388,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "22780:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "22733:48:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"id": 6391,
																					"name": "POSITIVE_ZERO",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4337,
																					"src": "22814:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"id": 6392,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "22733:94:22",
																				"trueExpression": {
																					"id": 6390,
																					"name": "NEGATIVE_ZERO",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4340,
																					"src": "22798:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6246,
																			"id": 6393,
																			"nodeType": "Return",
																			"src": "22726:101:22"
																		}
																	},
																	{
																		"expression": {
																			"id": 6397,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 6395,
																				"name": "xExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6248,
																				"src": "22838:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "+=",
																			"rightHandSide": {
																				"id": 6396,
																				"name": "yExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6259,
																				"src": "22851:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "22838:22:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 6398,
																		"nodeType": "ExpressionStatement",
																		"src": "22838:22:22"
																	},
																	{
																		"assignments": [
																			6400
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 6400,
																				"mutability": "mutable",
																				"name": "msb",
																				"nameLocation": "22879:3:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 6531,
																				"src": "22871:11:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 6399,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "22871:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 6414,
																		"initialValue": {
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6403,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6401,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6334,
																					"src": "22895:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">=",
																				"rightExpression": {
																					"hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																					"id": 6402,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22909:59:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1",
																						"typeString": "int_const 5391...(60 digits omitted)...8432"
																					},
																					"value": "0x200000000000000000000000000000000000000000000000000000000"
																				},
																				"src": "22895:73:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseExpression": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6407,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6405,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6334,
																						"src": "22987:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">=",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
																						"id": 6406,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "23001:59:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1",
																							"typeString": "int_const 2695...(60 digits omitted)...9216"
																						},
																						"value": "0x100000000000000000000000000000000000000000000000000000000"
																					},
																					"src": "22987:73:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"arguments": [
																						{
																							"id": 6410,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6334,
																							"src": "23099:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						],
																						"id": 6409,
																						"name": "mostSignificantBit",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 9523,
																						"src": "23079:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																							"typeString": "function (uint256) pure returns (uint256)"
																						}
																					},
																					"id": 6411,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "functionCall",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "23079:31:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 6412,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "22987:123:22",
																				"trueExpression": {
																					"hexValue": "323234",
																					"id": 6408,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "23063:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_224_by_1",
																						"typeString": "int_const 224"
																					},
																					"value": "224"
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6413,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "Conditional",
																			"src": "22895:215:22",
																			"trueExpression": {
																				"hexValue": "323235",
																				"id": 6404,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22971:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_225_by_1",
																					"typeString": "int_const 225"
																				},
																				"value": "225"
																			},
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "22871:239:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 6419,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6417,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6415,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6248,
																					"src": "23125:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "+",
																				"rightExpression": {
																					"id": 6416,
																					"name": "msb",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6400,
																					"src": "23137:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "23125:15:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "<",
																			"rightExpression": {
																				"hexValue": "3136343936",
																				"id": 6418,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "23143:5:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_16496_by_1",
																					"typeString": "int_const 16496"
																				},
																				"value": "16496"
																			},
																			"src": "23125:23:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6433,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6431,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6429,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6248,
																						"src": "23235:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 6430,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6400,
																						"src": "23247:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "23235:15:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "<",
																				"rightExpression": {
																					"hexValue": "3136363038",
																					"id": 6432,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "23253:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_16608_by_1",
																						"typeString": "int_const 16608"
																					},
																					"value": "16608"
																				},
																				"src": "23235:23:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6463,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6461,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6459,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6248,
																							"src": "23482:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "+",
																						"rightExpression": {
																							"id": 6460,
																							"name": "msb",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6400,
																							"src": "23494:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "23482:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "3439333733",
																						"id": 6462,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "23500:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_49373_by_1",
																							"typeString": "int_const 49373"
																						},
																						"value": "49373"
																					},
																					"src": "23482:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"id": 6505,
																					"nodeType": "Block",
																					"src": "23580:247:22",
																					"statements": [
																						{
																							"condition": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6475,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 6473,
																									"name": "msb",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6400,
																									"src": "23596:3:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": ">",
																								"rightExpression": {
																									"hexValue": "313132",
																									"id": 6474,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "23602:3:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_112_by_1",
																										"typeString": "int_const 112"
																									},
																									"value": "112"
																								},
																								"src": "23596:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"falseBody": {
																								"condition": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6484,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 6482,
																										"name": "msb",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6400,
																										"src": "23664:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "<",
																									"rightExpression": {
																										"hexValue": "313132",
																										"id": 6483,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "23670:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"src": "23664:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 6491,
																								"nodeType": "IfStatement",
																								"src": "23660:51:22",
																								"trueBody": {
																									"expression": {
																										"id": 6489,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6485,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6334,
																											"src": "23687:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "<<=",
																										"rightHandSide": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6488,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"hexValue": "313132",
																												"id": 6486,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "23702:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_112_by_1",
																													"typeString": "int_const 112"
																												},
																												"value": "112"
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "-",
																											"rightExpression": {
																												"id": 6487,
																												"name": "msb",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6400,
																												"src": "23708:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "23702:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "23687:24:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6490,
																									"nodeType": "ExpressionStatement",
																									"src": "23687:24:22"
																								}
																							},
																							"id": 6492,
																							"nodeType": "IfStatement",
																							"src": "23592:119:22",
																							"trueBody": {
																								"expression": {
																									"id": 6480,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6476,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6334,
																										"src": "23619:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": ">>=",
																									"rightHandSide": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6479,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6477,
																											"name": "msb",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6400,
																											"src": "23634:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"hexValue": "313132",
																											"id": 6478,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "23640:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_112_by_1",
																												"typeString": "int_const 112"
																											},
																											"value": "112"
																										},
																										"src": "23634:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "23619:24:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6481,
																								"nodeType": "ExpressionStatement",
																								"src": "23619:24:22"
																							}
																						},
																						{
																							"expression": {
																								"id": 6495,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6493,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6334,
																									"src": "23724:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "&=",
																								"rightHandSide": {
																									"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																									"id": 6494,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "23738:30:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																										"typeString": "int_const 5192...(26 digits omitted)...0095"
																									},
																									"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																								},
																								"src": "23724:44:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6496,
																							"nodeType": "ExpressionStatement",
																							"src": "23724:44:22"
																						},
																						{
																							"expression": {
																								"id": 6503,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6497,
																									"name": "xExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6248,
																									"src": "23781:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6502,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6500,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6498,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6248,
																											"src": "23793:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "+",
																										"rightExpression": {
																											"id": 6499,
																											"name": "msb",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6400,
																											"src": "23805:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "23793:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"hexValue": "3136363037",
																										"id": 6501,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "23811:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_16607_by_1",
																											"typeString": "int_const 16607"
																										},
																										"value": "16607"
																									},
																									"src": "23793:23:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "23781:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6504,
																							"nodeType": "ExpressionStatement",
																							"src": "23781:35:22"
																						}
																					]
																				},
																				"id": 6506,
																				"nodeType": "IfStatement",
																				"src": "23478:349:22",
																				"trueBody": {
																					"id": 6472,
																					"nodeType": "Block",
																					"src": "23507:67:22",
																					"statements": [
																						{
																							"expression": {
																								"id": 6466,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6464,
																									"name": "xExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6248,
																									"src": "23519:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"hexValue": "307837464646",
																									"id": 6465,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "23531:6:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_32767_by_1",
																										"typeString": "int_const 32767"
																									},
																									"value": "0x7FFF"
																								},
																								"src": "23519:18:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6467,
																							"nodeType": "ExpressionStatement",
																							"src": "23519:18:22"
																						},
																						{
																							"expression": {
																								"id": 6470,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6468,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6334,
																									"src": "23549:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"hexValue": "30",
																									"id": 6469,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "23562:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_0_by_1",
																										"typeString": "int_const 0"
																									},
																									"value": "0"
																								},
																								"src": "23549:14:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6471,
																							"nodeType": "ExpressionStatement",
																							"src": "23549:14:22"
																						}
																					]
																				}
																			},
																			"id": 6507,
																			"nodeType": "IfStatement",
																			"src": "23231:596:22",
																			"trueBody": {
																				"id": 6458,
																				"nodeType": "Block",
																				"src": "23260:212:22",
																				"statements": [
																					{
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6436,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6434,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6248,
																								"src": "23289:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "<",
																							"rightExpression": {
																								"hexValue": "3136343936",
																								"id": 6435,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "23301:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_16496_by_1",
																									"typeString": "int_const 16496"
																								},
																								"value": "16496"
																							},
																							"src": "23289:17:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"falseBody": {
																							"condition": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6445,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 6443,
																									"name": "xExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6248,
																									"src": "23373:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": ">",
																								"rightExpression": {
																									"hexValue": "3136343936",
																									"id": 6444,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "23385:5:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_16496_by_1",
																										"typeString": "int_const 16496"
																									},
																									"value": "16496"
																								},
																								"src": "23373:17:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"id": 6452,
																							"nodeType": "IfStatement",
																							"src": "23369:67:22",
																							"trueBody": {
																								"expression": {
																									"id": 6450,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6446,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6334,
																										"src": "23404:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "<<=",
																									"rightHandSide": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6449,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6447,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6248,
																											"src": "23419:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"hexValue": "3136343936",
																											"id": 6448,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "23431:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_16496_by_1",
																												"typeString": "int_const 16496"
																											},
																											"value": "16496"
																										},
																										"src": "23419:17:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "23404:32:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6451,
																								"nodeType": "ExpressionStatement",
																								"src": "23404:32:22"
																							}
																						},
																						"id": 6453,
																						"nodeType": "IfStatement",
																						"src": "23285:151:22",
																						"trueBody": {
																							"expression": {
																								"id": 6441,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6437,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6334,
																									"src": "23320:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": ">>=",
																								"rightHandSide": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6440,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"hexValue": "3136343936",
																										"id": 6438,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "23335:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_16496_by_1",
																											"typeString": "int_const 16496"
																										},
																										"value": "16496"
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"id": 6439,
																										"name": "xExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6248,
																										"src": "23343:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "23335:17:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "23320:32:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6442,
																							"nodeType": "ExpressionStatement",
																							"src": "23320:32:22"
																						}
																					},
																					{
																						"expression": {
																							"id": 6456,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 6454,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6248,
																								"src": "23448:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"hexValue": "30",
																								"id": 6455,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "23460:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_0_by_1",
																									"typeString": "int_const 0"
																								},
																								"value": "0"
																							},
																							"src": "23448:13:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 6457,
																						"nodeType": "ExpressionStatement",
																						"src": "23448:13:22"
																					}
																				]
																			}
																		},
																		"id": 6508,
																		"nodeType": "IfStatement",
																		"src": "23121:706:22",
																		"trueBody": {
																			"id": 6428,
																			"nodeType": "Block",
																			"src": "23150:75:22",
																			"statements": [
																				{
																					"expression": {
																						"id": 6422,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 6420,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6248,
																							"src": "23175:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"hexValue": "30",
																							"id": 6421,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "23187:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_0_by_1",
																								"typeString": "int_const 0"
																							},
																							"value": "0"
																						},
																						"src": "23175:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 6423,
																					"nodeType": "ExpressionStatement",
																					"src": "23175:13:22"
																				},
																				{
																					"expression": {
																						"id": 6426,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 6424,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6334,
																							"src": "23200:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"hexValue": "30",
																							"id": 6425,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "23213:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_0_by_1",
																								"typeString": "int_const 0"
																							},
																							"value": "0"
																						},
																						"src": "23200:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 6427,
																					"nodeType": "ExpressionStatement",
																					"src": "23200:14:22"
																				}
																			]
																		}
																	},
																	{
																		"expression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6527,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6525,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"arguments": [
																										{
																											"commonType": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											},
																											"id": 6520,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"components": [
																													{
																														"commonType": {
																															"typeIdentifier": "t_bytes16",
																															"typeString": "bytes16"
																														},
																														"id": 6517,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"id": 6515,
																															"name": "x",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 6240,
																															"src": "23872:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_bytes16",
																																"typeString": "bytes16"
																															}
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "^",
																														"rightExpression": {
																															"id": 6516,
																															"name": "y",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 6242,
																															"src": "23876:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_bytes16",
																																"typeString": "bytes16"
																															}
																														},
																														"src": "23872:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_bytes16",
																															"typeString": "bytes16"
																														}
																													}
																												],
																												"id": 6518,
																												"isConstant": false,
																												"isInlineArray": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"nodeType": "TupleExpression",
																												"src": "23871:7:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "&",
																											"rightExpression": {
																												"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																												"id": 6519,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "23881:34:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																													"typeString": "int_const 1701...(31 digits omitted)...5728"
																												},
																												"value": "0x80000000000000000000000000000000"
																											},
																											"src": "23871:44:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										}
																									],
																									"expression": {
																										"argumentTypes": [
																											{
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										],
																										"id": 6514,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"lValueRequested": false,
																										"nodeType": "ElementaryTypeNameExpression",
																										"src": "23862:7:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_type$_t_uint128_$",
																											"typeString": "type(uint128)"
																										},
																										"typeName": {
																											"id": 6513,
																											"name": "uint128",
																											"nodeType": "ElementaryTypeName",
																											"src": "23862:7:22",
																											"typeDescriptions": {}
																										}
																									},
																									"id": 6521,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"kind": "typeConversion",
																									"lValueRequested": false,
																									"nameLocations": [],
																									"names": [],
																									"nodeType": "FunctionCall",
																									"src": "23862:54:22",
																									"tryCall": false,
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint128",
																										"typeString": "uint128"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "|",
																								"rightExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6524,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 6522,
																										"name": "xExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6248,
																										"src": "23931:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "<<",
																									"rightExpression": {
																										"hexValue": "313132",
																										"id": 6523,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "23944:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"src": "23931:16:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "23862:85:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "|",
																							"rightExpression": {
																								"id": 6526,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6334,
																								"src": "23950:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "23862:98:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						],
																						"id": 6512,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "23853:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_uint128_$",
																							"typeString": "type(uint128)"
																						},
																						"typeName": {
																							"id": 6511,
																							"name": "uint128",
																							"nodeType": "ElementaryTypeName",
																							"src": "23853:7:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 6528,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "23853:108:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				],
																				"id": 6510,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "23844:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_bytes16_$",
																					"typeString": "type(bytes16)"
																				},
																				"typeName": {
																					"id": 6509,
																					"name": "bytes16",
																					"nodeType": "ElementaryTypeName",
																					"src": "23844:7:22",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 6529,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "23844:118:22",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 6246,
																		"id": 6530,
																		"nodeType": "Return",
																		"src": "23837:125:22"
																	}
																]
															},
															"id": 6532,
															"nodeType": "IfStatement",
															"src": "22116:1855:22",
															"trueBody": {
																"id": 6332,
																"nodeType": "Block",
																"src": "22141:146:22",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			},
																			"id": 6322,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6320,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6318,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6240,
																					"src": "22157:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																					"id": 6319,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "22161:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																						"typeString": "int_const 1701...(31 digits omitted)...5727"
																					},
																					"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "22157:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 6321,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "22199:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "22157:43:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6329,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6325,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6242,
																					"src": "22236:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "^",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6328,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6326,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6240,
																						"src": "22240:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																						"id": 6327,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "22244:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																							"typeString": "int_const 1701...(31 digits omitted)...5728"
																						},
																						"value": "0x80000000000000000000000000000000"
																					},
																					"src": "22240:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"src": "22236:42:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6246,
																			"id": 6330,
																			"nodeType": "Return",
																			"src": "22229:49:22"
																		},
																		"id": 6331,
																		"nodeType": "IfStatement",
																		"src": "22153:125:22",
																		"trueBody": {
																			"expression": {
																				"id": 6323,
																				"name": "NaN",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4349,
																				"src": "22209:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6246,
																			"id": 6324,
																			"nodeType": "Return",
																			"src": "22202:10:22"
																		}
																	}
																]
															}
														},
														"id": 6533,
														"nodeType": "IfStatement",
														"src": "21699:2272:22",
														"trueBody": {
															"id": 6314,
															"nodeType": "Block",
															"src": "21724:386:22",
															"statements": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 6274,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 6272,
																			"name": "yExponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6259,
																			"src": "21738:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "307837464646",
																			"id": 6273,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "21751:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32767_by_1",
																				"typeString": "int_const 32767"
																			},
																			"value": "0x7FFF"
																		},
																		"src": "21738:19:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"id": 6312,
																		"nodeType": "Block",
																		"src": "21954:148:22",
																		"statements": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6302,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6300,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6298,
																							"name": "y",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6242,
																							"src": "21970:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "&",
																						"rightExpression": {
																							"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																							"id": 6299,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "21974:34:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																								"typeString": "int_const 1701...(31 digits omitted)...5727"
																							},
																							"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																						},
																						"src": "21970:38:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 6301,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "22012:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "21970:43:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"expression": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6309,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6305,
																							"name": "x",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6240,
																							"src": "22049:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "^",
																						"rightExpression": {
																							"commonType": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							},
																							"id": 6308,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6306,
																								"name": "y",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6242,
																								"src": "22053:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "&",
																							"rightExpression": {
																								"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																								"id": 6307,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "22057:34:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																									"typeString": "int_const 1701...(31 digits omitted)...5728"
																								},
																								"value": "0x80000000000000000000000000000000"
																							},
																							"src": "22053:38:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"src": "22049:42:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 6246,
																					"id": 6310,
																					"nodeType": "Return",
																					"src": "22042:49:22"
																				},
																				"id": 6311,
																				"nodeType": "IfStatement",
																				"src": "21966:125:22",
																				"trueBody": {
																					"expression": {
																						"id": 6303,
																						"name": "NaN",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4349,
																						"src": "22022:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 6246,
																					"id": 6304,
																					"nodeType": "Return",
																					"src": "22015:10:22"
																				}
																			}
																		]
																	},
																	"id": 6313,
																	"nodeType": "IfStatement",
																	"src": "21734:368:22",
																	"trueBody": {
																		"id": 6297,
																		"nodeType": "Block",
																		"src": "21759:189:22",
																		"statements": [
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6277,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6275,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6240,
																						"src": "21775:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"id": 6276,
																						"name": "y",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6242,
																						"src": "21780:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"src": "21775:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6288,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							},
																							"id": 6286,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6284,
																								"name": "x",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6240,
																								"src": "21853:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "^",
																							"rightExpression": {
																								"id": 6285,
																								"name": "y",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6242,
																								"src": "21857:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"src": "21853:5:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "==",
																						"rightExpression": {
																							"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																							"id": 6287,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "21862:34:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																								"typeString": "int_const 1701...(31 digits omitted)...5728"
																							},
																							"value": "0x80000000000000000000000000000000"
																						},
																						"src": "21853:43:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseBody": {
																						"expression": {
																							"id": 6293,
																							"name": "NaN",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 4349,
																							"src": "21934:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"functionReturnParameters": 6246,
																						"id": 6294,
																						"nodeType": "Return",
																						"src": "21927:10:22"
																					},
																					"id": 6295,
																					"nodeType": "IfStatement",
																					"src": "21849:88:22",
																					"trueBody": {
																						"expression": {
																							"commonType": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							},
																							"id": 6291,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6289,
																								"name": "x",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6240,
																								"src": "21905:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "|",
																							"rightExpression": {
																								"id": 6290,
																								"name": "y",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6242,
																								"src": "21909:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"src": "21905:5:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"functionReturnParameters": 6246,
																						"id": 6292,
																						"nodeType": "Return",
																						"src": "21898:12:22"
																					}
																				},
																				"id": 6296,
																				"nodeType": "IfStatement",
																				"src": "21771:166:22",
																				"trueBody": {
																					"expression": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6282,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6278,
																							"name": "x",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6240,
																							"src": "21790:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "^",
																						"rightExpression": {
																							"commonType": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							},
																							"id": 6281,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6279,
																								"name": "y",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6242,
																								"src": "21794:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "&",
																							"rightExpression": {
																								"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																								"id": 6280,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "21798:34:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																									"typeString": "int_const 1701...(31 digits omitted)...5728"
																								},
																								"value": "0x80000000000000000000000000000000"
																							},
																							"src": "21794:38:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"src": "21790:42:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 6246,
																					"id": 6283,
																					"nodeType": "Return",
																					"src": "21783:49:22"
																				}
																			}
																		]
																	}
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6238,
										"nodeType": "StructuredDocumentation",
										"src": "20822:671:22",
										"text": " Calculate x * y.  Special values behave in the following way:\n NaN * x = NaN for any x.\n Infinity * x = Infinity for any finite positive x.\n Infinity * x = -Infinity for any finite negative x.\n -Infinity * x = -Infinity for any finite positive x.\n -Infinity * x = Infinity for any finite negative x.\n Infinity * 0 = NaN.\n -Infinity * 0 = NaN.\n Infinity * Infinity = Infinity.\n Infinity * -Infinity = -Infinity.\n -Infinity * Infinity = -Infinity.\n -Infinity * -Infinity = Infinity.\n @param x quadruple precision number\n @param y quadruple precision number\n @return quadruple precision number"
									},
									"id": 6536,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mul",
									"nameLocation": "21505:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6243,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6240,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "21518:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6536,
												"src": "21510:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6239,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "21510:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6242,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "21529:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6536,
												"src": "21521:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6241,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "21521:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21509:22:22"
									},
									"returnParameters": {
										"id": 6246,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6245,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6536,
												"src": "21555:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6244,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "21555:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21554:9:22"
									},
									"scope": 9524,
									"src": "21496:2485:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6876,
										"nodeType": "Block",
										"src": "25306:2726:22",
										"statements": [
											{
												"id": 6875,
												"nodeType": "UncheckedBlock",
												"src": "25312:2716:22",
												"statements": [
													{
														"assignments": [
															6547
														],
														"declarations": [
															{
																"constant": false,
																"id": 6547,
																"mutability": "mutable",
																"name": "xExponent",
																"nameLocation": "25338:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6875,
																"src": "25330:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 6546,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "25330:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 6556,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 6555,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 6553,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 6550,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6539,
																			"src": "25359:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 6549,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "25350:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 6548,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "25350:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 6551,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "25350:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 6552,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25365:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "25350:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6554,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "25371:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "25350:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "25330:47:22"
													},
													{
														"assignments": [
															6558
														],
														"declarations": [
															{
																"constant": false,
																"id": 6558,
																"mutability": "mutable",
																"name": "yExponent",
																"nameLocation": "25393:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 6875,
																"src": "25385:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 6557,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "25385:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 6567,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 6566,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 6564,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 6561,
																			"name": "y",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6541,
																			"src": "25414:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 6560,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "25405:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 6559,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "25405:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 6562,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "25405:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 6563,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25420:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "25405:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6565,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "25426:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "25405:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "25385:47:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 6570,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 6568,
																"name": "xExponent",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6547,
																"src": "25445:9:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 6569,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "25458:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "25445:19:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 6586,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 6584,
																	"name": "yExponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6558,
																	"src": "25594:9:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "307837464646",
																	"id": 6585,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25607:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32767_by_1",
																		"typeString": "int_const 32767"
																	},
																	"value": "0x7FFF"
																},
																"src": "25594:19:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"condition": {
																	"commonType": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	},
																	"id": 6609,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"commonType": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		},
																		"id": 6607,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 6605,
																			"name": "y",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6541,
																			"src": "25785:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "&",
																		"rightExpression": {
																			"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																			"id": 6606,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "25789:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																				"typeString": "int_const 1701...(31 digits omitted)...5727"
																			},
																			"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																		},
																		"src": "25785:38:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "==",
																	"rightExpression": {
																		"hexValue": "30",
																		"id": 6608,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "25827:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	},
																	"src": "25785:43:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseBody": {
																	"id": 6871,
																	"nodeType": "Block",
																	"src": "26000:2022:22",
																	"statements": [
																		{
																			"assignments": [
																				6629
																			],
																			"declarations": [
																				{
																					"constant": false,
																					"id": 6629,
																					"mutability": "mutable",
																					"name": "ySignifier",
																					"nameLocation": "26018:10:22",
																					"nodeType": "VariableDeclaration",
																					"scope": 6871,
																					"src": "26010:18:22",
																					"stateVariable": false,
																					"storageLocation": "default",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"typeName": {
																						"id": 6628,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "26010:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"visibility": "internal"
																				}
																			],
																			"id": 6636,
																			"initialValue": {
																				"commonType": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				},
																				"id": 6635,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"arguments": [
																						{
																							"id": 6632,
																							"name": "y",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6541,
																							"src": "26040:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						],
																						"id": 6631,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "26031:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_uint128_$",
																							"typeString": "type(uint128)"
																						},
																						"typeName": {
																							"id": 6630,
																							"name": "uint128",
																							"nodeType": "ElementaryTypeName",
																							"src": "26031:7:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 6633,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "26031:11:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 6634,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "26045:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "26031:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "VariableDeclarationStatement",
																			"src": "26010:65:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6639,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6637,
																					"name": "yExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6558,
																					"src": "26089:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 6638,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "26102:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "26089:14:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"expression": {
																					"id": 6646,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 6644,
																						"name": "ySignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6629,
																						"src": "26133:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "|=",
																					"rightHandSide": {
																						"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																						"id": 6645,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "26147:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																							"typeString": "int_const 5192...(26 digits omitted)...0096"
																						},
																						"value": "0x10000000000000000000000000000"
																					},
																					"src": "26133:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 6647,
																				"nodeType": "ExpressionStatement",
																				"src": "26133:45:22"
																			},
																			"id": 6648,
																			"nodeType": "IfStatement",
																			"src": "26085:93:22",
																			"trueBody": {
																				"expression": {
																					"id": 6642,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 6640,
																						"name": "yExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6558,
																						"src": "26105:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"hexValue": "31",
																						"id": 6641,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "26117:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1_by_1",
																							"typeString": "int_const 1"
																						},
																						"value": "1"
																					},
																					"src": "26105:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 6643,
																				"nodeType": "ExpressionStatement",
																				"src": "26105:13:22"
																			}
																		},
																		{
																			"assignments": [
																				6650
																			],
																			"declarations": [
																				{
																					"constant": false,
																					"id": 6650,
																					"mutability": "mutable",
																					"name": "xSignifier",
																					"nameLocation": "26197:10:22",
																					"nodeType": "VariableDeclaration",
																					"scope": 6871,
																					"src": "26189:18:22",
																					"stateVariable": false,
																					"storageLocation": "default",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"typeName": {
																						"id": 6649,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "26189:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"visibility": "internal"
																				}
																			],
																			"id": 6657,
																			"initialValue": {
																				"commonType": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				},
																				"id": 6656,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"arguments": [
																						{
																							"id": 6653,
																							"name": "x",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6539,
																							"src": "26219:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						],
																						"id": 6652,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "26210:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_uint128_$",
																							"typeString": "type(uint128)"
																						},
																						"typeName": {
																							"id": 6651,
																							"name": "uint128",
																							"nodeType": "ElementaryTypeName",
																							"src": "26210:7:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 6654,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "26210:11:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																					"id": 6655,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "26224:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "26210:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "VariableDeclarationStatement",
																			"src": "26189:65:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6660,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6658,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6547,
																					"src": "26268:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 6659,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "26281:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "26268:14:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"id": 6698,
																				"nodeType": "Block",
																				"src": "26519:89:22",
																				"statements": [
																					{
																						"expression": {
																							"id": 6696,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 6689,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6650,
																								"src": "26531:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6695,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"components": [
																										{
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6692,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6690,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6650,
																												"src": "26545:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "|",
																											"rightExpression": {
																												"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																												"id": 6691,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "26558:31:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																													"typeString": "int_const 5192...(26 digits omitted)...0096"
																												},
																												"value": "0x10000000000000000000000000000"
																											},
																											"src": "26545:44:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										}
																									],
																									"id": 6693,
																									"isConstant": false,
																									"isInlineArray": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"nodeType": "TupleExpression",
																									"src": "26544:46:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "<<",
																								"rightExpression": {
																									"hexValue": "313134",
																									"id": 6694,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "26594:3:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_114_by_1",
																										"typeString": "int_const 114"
																									},
																									"value": "114"
																								},
																								"src": "26544:53:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "26531:66:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 6697,
																						"nodeType": "ExpressionStatement",
																						"src": "26531:66:22"
																					}
																				]
																			},
																			"id": 6699,
																			"nodeType": "IfStatement",
																			"src": "26264:344:22",
																			"trueBody": {
																				"id": 6688,
																				"nodeType": "Block",
																				"src": "26284:221:22",
																				"statements": [
																					{
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6663,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6661,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6650,
																								"src": "26300:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "!=",
																							"rightExpression": {
																								"hexValue": "30",
																								"id": 6662,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "26314:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_0_by_1",
																									"typeString": "int_const 0"
																								},
																								"value": "0"
																							},
																							"src": "26300:15:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"id": 6687,
																						"nodeType": "IfStatement",
																						"src": "26296:199:22",
																						"trueBody": {
																							"id": 6686,
																							"nodeType": "Block",
																							"src": "26317:178:22",
																							"statements": [
																								{
																									"assignments": [
																										6665
																									],
																									"declarations": [
																										{
																											"constant": false,
																											"id": 6665,
																											"mutability": "mutable",
																											"name": "shift",
																											"nameLocation": "26336:5:22",
																											"nodeType": "VariableDeclaration",
																											"scope": 6686,
																											"src": "26331:10:22",
																											"stateVariable": false,
																											"storageLocation": "default",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"typeName": {
																												"id": 6664,
																												"name": "uint",
																												"nodeType": "ElementaryTypeName",
																												"src": "26331:4:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"visibility": "internal"
																										}
																									],
																									"id": 6671,
																									"initialValue": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6670,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"hexValue": "323236",
																											"id": 6666,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "26344:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_226_by_1",
																												"typeString": "int_const 226"
																											},
																											"value": "226"
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"arguments": [
																												{
																													"id": 6668,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6650,
																													"src": "26370:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												}
																											],
																											"expression": {
																												"argumentTypes": [
																													{
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												],
																												"id": 6667,
																												"name": "mostSignificantBit",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 9523,
																												"src": "26350:18:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																													"typeString": "function (uint256) pure returns (uint256)"
																												}
																											},
																											"id": 6669,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"kind": "functionCall",
																											"lValueRequested": false,
																											"nameLocations": [],
																											"names": [],
																											"nodeType": "FunctionCall",
																											"src": "26350:31:22",
																											"tryCall": false,
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "26344:37:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "VariableDeclarationStatement",
																									"src": "26331:50:22"
																								},
																								{
																									"expression": {
																										"id": 6674,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6672,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6650,
																											"src": "26396:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "<<=",
																										"rightHandSide": {
																											"id": 6673,
																											"name": "shift",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6665,
																											"src": "26411:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "26396:20:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6675,
																									"nodeType": "ExpressionStatement",
																									"src": "26396:20:22"
																								},
																								{
																									"expression": {
																										"id": 6678,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6676,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6547,
																											"src": "26431:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "=",
																										"rightHandSide": {
																											"hexValue": "31",
																											"id": 6677,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "26443:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_1_by_1",
																												"typeString": "int_const 1"
																											},
																											"value": "1"
																										},
																										"src": "26431:13:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6679,
																									"nodeType": "ExpressionStatement",
																									"src": "26431:13:22"
																								},
																								{
																									"expression": {
																										"id": 6684,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6680,
																											"name": "yExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6558,
																											"src": "26458:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "+=",
																										"rightHandSide": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6683,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6681,
																												"name": "shift",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6665,
																												"src": "26471:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "-",
																											"rightExpression": {
																												"hexValue": "313134",
																												"id": 6682,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "26479:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_114_by_1",
																													"typeString": "int_const 114"
																												},
																												"value": "114"
																											},
																											"src": "26471:11:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "26458:24:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6685,
																									"nodeType": "ExpressionStatement",
																									"src": "26458:24:22"
																								}
																							]
																						}
																					}
																				]
																			}
																		},
																		{
																			"expression": {
																				"id": 6704,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 6700,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6650,
																					"src": "26618:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "=",
																				"rightHandSide": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6703,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6701,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6650,
																						"src": "26631:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "/",
																					"rightExpression": {
																						"id": 6702,
																						"name": "ySignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6629,
																						"src": "26644:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "26631:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "26618:36:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 6705,
																			"nodeType": "ExpressionStatement",
																			"src": "26618:36:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6708,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6706,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6650,
																					"src": "26668:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 6707,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "26682:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "26668:15:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 6721,
																			"nodeType": "IfStatement",
																			"src": "26664:132:22",
																			"trueBody": {
																				"expression": {
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6716,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							},
																							"id": 6714,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"components": [
																									{
																										"commonType": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										},
																										"id": 6711,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6709,
																											"name": "x",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6539,
																											"src": "26703:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "^",
																										"rightExpression": {
																											"id": 6710,
																											"name": "y",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6541,
																											"src": "26707:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_bytes16",
																												"typeString": "bytes16"
																											}
																										},
																										"src": "26703:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										}
																									}
																								],
																								"id": 6712,
																								"isConstant": false,
																								"isInlineArray": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"nodeType": "TupleExpression",
																								"src": "26702:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "&",
																							"rightExpression": {
																								"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																								"id": 6713,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "26712:34:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																									"typeString": "int_const 1701...(31 digits omitted)...5728"
																								},
																								"value": "0x80000000000000000000000000000000"
																							},
																							"src": "26702:44:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">",
																						"rightExpression": {
																							"hexValue": "30",
																							"id": 6715,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "26749:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_0_by_1",
																								"typeString": "int_const 0"
																							},
																							"value": "0"
																						},
																						"src": "26702:48:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseExpression": {
																						"id": 6718,
																						"name": "POSITIVE_ZERO",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4337,
																						"src": "26783:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"id": 6719,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "Conditional",
																					"src": "26702:94:22",
																					"trueExpression": {
																						"id": 6717,
																						"name": "NEGATIVE_ZERO",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4340,
																						"src": "26767:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 6545,
																				"id": 6720,
																				"nodeType": "Return",
																				"src": "26695:101:22"
																			}
																		},
																		{
																			"expression": {
																				"arguments": [
																					{
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6725,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6723,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6650,
																							"src": "26815:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">=",
																						"rightExpression": {
																							"hexValue": "307831303030303030303030303030303030303030303030303030303030",
																							"id": 6724,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "26829:30:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_324518553658426726783156020576256_by_1",
																								"typeString": "int_const 3245...(25 digits omitted)...6256"
																							},
																							"value": "0x1000000000000000000000000000"
																						},
																						"src": "26815:44:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					],
																					"id": 6722,
																					"name": "assert",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4294967293,
																					"src": "26807:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
																						"typeString": "function (bool) pure"
																					}
																				},
																				"id": 6726,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "26807:53:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_tuple$__$",
																					"typeString": "tuple()"
																				}
																			},
																			"id": 6727,
																			"nodeType": "ExpressionStatement",
																			"src": "26807:53:22"
																		},
																		{
																			"assignments": [
																				6729
																			],
																			"declarations": [
																				{
																					"constant": false,
																					"id": 6729,
																					"mutability": "mutable",
																					"name": "msb",
																					"nameLocation": "26879:3:22",
																					"nodeType": "VariableDeclaration",
																					"scope": 6871,
																					"src": "26871:11:22",
																					"stateVariable": false,
																					"storageLocation": "default",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"typeName": {
																						"id": 6728,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "26871:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"visibility": "internal"
																				}
																			],
																			"id": 6748,
																			"initialValue": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6732,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6730,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6650,
																						"src": "26895:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">=",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030",
																						"id": 6731,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "26909:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_41538374868278621028243970633760768_by_1",
																							"typeString": "int_const 4153...(27 digits omitted)...0768"
																						},
																						"value": "0x80000000000000000000000000000"
																					},
																					"src": "26895:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseExpression": {
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6738,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6736,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6650,
																							"src": "26987:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">=",
																						"rightExpression": {
																							"hexValue": "30783430303030303030303030303030303030303030303030303030303030",
																							"id": 6737,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "27001:31:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_20769187434139310514121985316880384_by_1",
																								"typeString": "int_const 2076...(27 digits omitted)...0384"
																							},
																							"value": "0x40000000000000000000000000000"
																						},
																						"src": "26987:45:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseExpression": {
																						"condition": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6742,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6740,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6650,
																								"src": "27051:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": ">=",
																							"rightExpression": {
																								"hexValue": "30783230303030303030303030303030303030303030303030303030303030",
																								"id": 6741,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "27065:31:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_10384593717069655257060992658440192_by_1",
																									"typeString": "int_const 1038...(27 digits omitted)...0192"
																								},
																								"value": "0x20000000000000000000000000000"
																							},
																							"src": "27051:45:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"falseExpression": {
																							"hexValue": "313132",
																							"id": 6744,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "27105:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_112_by_1",
																								"typeString": "int_const 112"
																							},
																							"value": "112"
																						},
																						"id": 6745,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "Conditional",
																						"src": "27051:57:22",
																						"trueExpression": {
																							"hexValue": "313133",
																							"id": 6743,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "27099:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_113_by_1",
																								"typeString": "int_const 113"
																							},
																							"value": "113"
																						},
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint8",
																							"typeString": "uint8"
																						}
																					},
																					"id": 6746,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "Conditional",
																					"src": "26987:121:22",
																					"trueExpression": {
																						"hexValue": "313134",
																						"id": 6739,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "27035:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_114_by_1",
																							"typeString": "int_const 114"
																						},
																						"value": "114"
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint8",
																						"typeString": "uint8"
																					}
																				},
																				"id": 6747,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "Conditional",
																				"src": "26895:213:22",
																				"trueExpression": {
																					"arguments": [
																						{
																							"id": 6734,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6650,
																							"src": "26963:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						],
																						"id": 6733,
																						"name": "mostSignificantBit",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 9523,
																						"src": "26943:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																							"typeString": "function (uint256) pure returns (uint256)"
																						}
																					},
																					"id": 6735,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "functionCall",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "26943:31:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "VariableDeclarationStatement",
																			"src": "26871:237:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 6755,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6751,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6749,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6547,
																						"src": "27123:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"id": 6750,
																						"name": "msb",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6729,
																						"src": "27135:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "27123:15:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6754,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6752,
																						"name": "yExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6558,
																						"src": "27141:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "+",
																					"rightExpression": {
																						"hexValue": "3136343937",
																						"id": 6753,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "27153:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16497_by_1",
																							"typeString": "int_const 16497"
																						},
																						"value": "16497"
																					},
																					"src": "27141:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "27123:35:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6771,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6769,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6767,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6765,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6547,
																								"src": "27249:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "+",
																							"rightExpression": {
																								"id": 6766,
																								"name": "msb",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6729,
																								"src": "27261:3:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "27249:15:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "+",
																						"rightExpression": {
																							"hexValue": "3136333830",
																							"id": 6768,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "27267:5:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_16380_by_1",
																								"typeString": "int_const 16380"
																							},
																							"value": "16380"
																						},
																						"src": "27249:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<",
																					"rightExpression": {
																						"id": 6770,
																						"name": "yExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6558,
																						"src": "27276:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "27249:36:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6787,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6785,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6783,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 6781,
																									"name": "xExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6547,
																									"src": "27372:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "+",
																								"rightExpression": {
																									"id": 6782,
																									"name": "msb",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6729,
																									"src": "27384:3:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "27372:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "+",
																							"rightExpression": {
																								"hexValue": "3136323638",
																								"id": 6784,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "27390:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_16268_by_1",
																									"typeString": "int_const 16268"
																								},
																								"value": "16268"
																							},
																							"src": "27372:23:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "<",
																						"rightExpression": {
																							"id": 6786,
																							"name": "yExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6558,
																							"src": "27399:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "27372:36:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseBody": {
																						"id": 6845,
																						"nodeType": "Block",
																						"src": "27677:201:22",
																						"statements": [
																							{
																								"condition": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6823,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 6821,
																										"name": "msb",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6729,
																										"src": "27703:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": ">",
																									"rightExpression": {
																										"hexValue": "313132",
																										"id": 6822,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "27709:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"src": "27703:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 6830,
																								"nodeType": "IfStatement",
																								"src": "27699:51:22",
																								"trueBody": {
																									"expression": {
																										"id": 6828,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6824,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6650,
																											"src": "27726:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": ">>=",
																										"rightHandSide": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6827,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6825,
																												"name": "msb",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6729,
																												"src": "27741:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "-",
																											"rightExpression": {
																												"hexValue": "313132",
																												"id": 6826,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "27747:3:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_112_by_1",
																													"typeString": "int_const 112"
																												},
																												"value": "112"
																											},
																											"src": "27741:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "27726:24:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6829,
																									"nodeType": "ExpressionStatement",
																									"src": "27726:24:22"
																								}
																							},
																							{
																								"expression": {
																									"id": 6833,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6831,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6650,
																										"src": "27763:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "&=",
																									"rightHandSide": {
																										"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																										"id": 6832,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "27777:30:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																											"typeString": "int_const 5192...(26 digits omitted)...0095"
																										},
																										"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																									},
																									"src": "27763:44:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6834,
																								"nodeType": "ExpressionStatement",
																								"src": "27763:44:22"
																							},
																							{
																								"expression": {
																									"id": 6843,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6835,
																										"name": "xExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6547,
																										"src": "27820:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "=",
																									"rightHandSide": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6842,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6840,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 6838,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 6836,
																													"name": "xExponent",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6547,
																													"src": "27832:9:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "+",
																												"rightExpression": {
																													"id": 6837,
																													"name": "msb",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6729,
																													"src": "27844:3:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "27832:15:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "+",
																											"rightExpression": {
																												"hexValue": "3136323639",
																												"id": 6839,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "27850:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_16269_by_1",
																													"typeString": "int_const 16269"
																												},
																												"value": "16269"
																											},
																											"src": "27832:23:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"id": 6841,
																											"name": "yExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6558,
																											"src": "27858:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "27832:35:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "27820:47:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6844,
																								"nodeType": "ExpressionStatement",
																								"src": "27820:47:22"
																							}
																						]
																					},
																					"id": 6846,
																					"nodeType": "IfStatement",
																					"src": "27368:510:22",
																					"trueBody": {
																						"id": 6820,
																						"nodeType": "Block",
																						"src": "27410:261:22",
																						"statements": [
																							{
																								"condition": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6792,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6790,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6788,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6547,
																											"src": "27439:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "+",
																										"rightExpression": {
																											"hexValue": "3136333830",
																											"id": 6789,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "27451:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_16380_by_1",
																												"typeString": "int_const 16380"
																											},
																											"value": "16380"
																										},
																										"src": "27439:17:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": ">",
																									"rightExpression": {
																										"id": 6791,
																										"name": "yExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6558,
																										"src": "27459:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "27439:29:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"falseBody": {
																									"condition": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6805,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6803,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 6801,
																												"name": "xExponent",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6547,
																												"src": "27547:9:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "+",
																											"rightExpression": {
																												"hexValue": "3136333830",
																												"id": 6802,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "27559:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_16380_by_1",
																													"typeString": "int_const 16380"
																												},
																												"value": "16380"
																											},
																											"src": "27547:17:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "<",
																										"rightExpression": {
																											"id": 6804,
																											"name": "yExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6558,
																											"src": "27567:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "27547:29:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"id": 6814,
																									"nodeType": "IfStatement",
																									"src": "27543:91:22",
																									"trueBody": {
																										"expression": {
																											"id": 6812,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 6806,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6650,
																												"src": "27590:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": ">>=",
																											"rightHandSide": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 6811,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 6809,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 6807,
																														"name": "yExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 6558,
																														"src": "27605:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"id": 6808,
																														"name": "xExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 6547,
																														"src": "27617:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "27605:21:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "-",
																												"rightExpression": {
																													"hexValue": "3136333830",
																													"id": 6810,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "27629:5:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_16380_by_1",
																														"typeString": "int_const 16380"
																													},
																													"value": "16380"
																												},
																												"src": "27605:29:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "27590:44:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 6813,
																										"nodeType": "ExpressionStatement",
																										"src": "27590:44:22"
																									}
																								},
																								"id": 6815,
																								"nodeType": "IfStatement",
																								"src": "27435:199:22",
																								"trueBody": {
																									"expression": {
																										"id": 6799,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 6793,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6650,
																											"src": "27482:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "<<=",
																										"rightHandSide": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 6798,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 6796,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 6794,
																													"name": "xExponent",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6547,
																													"src": "27497:9:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "+",
																												"rightExpression": {
																													"hexValue": "3136333830",
																													"id": 6795,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "27509:5:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_16380_by_1",
																														"typeString": "int_const 16380"
																													},
																													"value": "16380"
																												},
																												"src": "27497:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "-",
																											"rightExpression": {
																												"id": 6797,
																												"name": "yExponent",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6558,
																												"src": "27517:9:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "27497:29:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "27482:44:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 6800,
																									"nodeType": "ExpressionStatement",
																									"src": "27482:44:22"
																								}
																							},
																							{
																								"expression": {
																									"id": 6818,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6816,
																										"name": "xExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6547,
																										"src": "27647:9:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "=",
																									"rightHandSide": {
																										"hexValue": "30",
																										"id": 6817,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "27659:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_0_by_1",
																											"typeString": "int_const 0"
																										},
																										"value": "0"
																									},
																									"src": "27647:13:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6819,
																								"nodeType": "ExpressionStatement",
																								"src": "27647:13:22"
																							}
																						]
																					}
																				},
																				"id": 6847,
																				"nodeType": "IfStatement",
																				"src": "27245:633:22",
																				"trueBody": {
																					"id": 6780,
																					"nodeType": "Block",
																					"src": "27287:75:22",
																					"statements": [
																						{
																							"expression": {
																								"id": 6774,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6772,
																									"name": "xExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6547,
																									"src": "27312:9:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"hexValue": "30",
																									"id": 6773,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "27324:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_0_by_1",
																										"typeString": "int_const 0"
																									},
																									"value": "0"
																								},
																								"src": "27312:13:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6775,
																							"nodeType": "ExpressionStatement",
																							"src": "27312:13:22"
																						},
																						{
																							"expression": {
																								"id": 6778,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 6776,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6650,
																									"src": "27337:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"hexValue": "30",
																									"id": 6777,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "27350:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_0_by_1",
																										"typeString": "int_const 0"
																									},
																									"value": "0"
																								},
																								"src": "27337:14:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 6779,
																							"nodeType": "ExpressionStatement",
																							"src": "27337:14:22"
																						}
																					]
																				}
																			},
																			"id": 6848,
																			"nodeType": "IfStatement",
																			"src": "27119:759:22",
																			"trueBody": {
																				"id": 6764,
																				"nodeType": "Block",
																				"src": "27160:79:22",
																				"statements": [
																					{
																						"expression": {
																							"id": 6758,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 6756,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6547,
																								"src": "27184:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"hexValue": "307837464646",
																								"id": 6757,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "27196:6:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_32767_by_1",
																									"typeString": "int_const 32767"
																								},
																								"value": "0x7FFF"
																							},
																							"src": "27184:18:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 6759,
																						"nodeType": "ExpressionStatement",
																						"src": "27184:18:22"
																					},
																					{
																						"expression": {
																							"id": 6762,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 6760,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6650,
																								"src": "27214:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"hexValue": "30",
																								"id": 6761,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "27227:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_0_by_1",
																									"typeString": "int_const 0"
																								},
																								"value": "0"
																							},
																							"src": "27214:14:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 6763,
																						"nodeType": "ExpressionStatement",
																						"src": "27214:14:22"
																					}
																				]
																			}
																		},
																		{
																			"expression": {
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6867,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 6865,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"arguments": [
																											{
																												"commonType": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												},
																												"id": 6860,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"components": [
																														{
																															"commonType": {
																																"typeIdentifier": "t_bytes16",
																																"typeString": "bytes16"
																															},
																															"id": 6857,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": false,
																															"lValueRequested": false,
																															"leftExpression": {
																																"id": 6855,
																																"name": "x",
																																"nodeType": "Identifier",
																																"overloadedDeclarations": [],
																																"referencedDeclaration": 6539,
																																"src": "27923:1:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_bytes16",
																																	"typeString": "bytes16"
																																}
																															},
																															"nodeType": "BinaryOperation",
																															"operator": "^",
																															"rightExpression": {
																																"id": 6856,
																																"name": "y",
																																"nodeType": "Identifier",
																																"overloadedDeclarations": [],
																																"referencedDeclaration": 6541,
																																"src": "27927:1:22",
																																"typeDescriptions": {
																																	"typeIdentifier": "t_bytes16",
																																	"typeString": "bytes16"
																																}
																															},
																															"src": "27923:5:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_bytes16",
																																"typeString": "bytes16"
																															}
																														}
																													],
																													"id": 6858,
																													"isConstant": false,
																													"isInlineArray": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"nodeType": "TupleExpression",
																													"src": "27922:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_bytes16",
																														"typeString": "bytes16"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "&",
																												"rightExpression": {
																													"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																													"id": 6859,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "27932:34:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																														"typeString": "int_const 1701...(31 digits omitted)...5728"
																													},
																													"value": "0x80000000000000000000000000000000"
																												},
																												"src": "27922:44:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											}
																										],
																										"expression": {
																											"argumentTypes": [
																												{
																													"typeIdentifier": "t_bytes16",
																													"typeString": "bytes16"
																												}
																											],
																											"id": 6854,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"lValueRequested": false,
																											"nodeType": "ElementaryTypeNameExpression",
																											"src": "27913:7:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_type$_t_uint128_$",
																												"typeString": "type(uint128)"
																											},
																											"typeName": {
																												"id": 6853,
																												"name": "uint128",
																												"nodeType": "ElementaryTypeName",
																												"src": "27913:7:22",
																												"typeDescriptions": {}
																											}
																										},
																										"id": 6861,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"kind": "typeConversion",
																										"lValueRequested": false,
																										"nameLocations": [],
																										"names": [],
																										"nodeType": "FunctionCall",
																										"src": "27913:54:22",
																										"tryCall": false,
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint128",
																											"typeString": "uint128"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "|",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 6864,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 6862,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6547,
																											"src": "27982:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "<<",
																										"rightExpression": {
																											"hexValue": "313132",
																											"id": 6863,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "27995:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_112_by_1",
																												"typeString": "int_const 112"
																											},
																											"value": "112"
																										},
																										"src": "27982:16:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "27913:85:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "|",
																								"rightExpression": {
																									"id": 6866,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6650,
																									"src": "28001:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "27913:98:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"id": 6852,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "ElementaryTypeNameExpression",
																							"src": "27904:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_type$_t_uint128_$",
																								"typeString": "type(uint128)"
																							},
																							"typeName": {
																								"id": 6851,
																								"name": "uint128",
																								"nodeType": "ElementaryTypeName",
																								"src": "27904:7:22",
																								"typeDescriptions": {}
																							}
																						},
																						"id": 6868,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "typeConversion",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "27904:108:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					],
																					"id": 6850,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "27895:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_bytes16_$",
																						"typeString": "type(bytes16)"
																					},
																					"typeName": {
																						"id": 6849,
																						"name": "bytes16",
																						"nodeType": "ElementaryTypeName",
																						"src": "27895:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 6869,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "27895:118:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6545,
																			"id": 6870,
																			"nodeType": "Return",
																			"src": "27888:125:22"
																		}
																	]
																},
																"id": 6872,
																"nodeType": "IfStatement",
																"src": "25781:2241:22",
																"trueBody": {
																	"id": 6627,
																	"nodeType": "Block",
																	"src": "25830:164:22",
																	"statements": [
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6614,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6612,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6610,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6539,
																						"src": "25844:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																						"id": 6611,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "25848:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																							"typeString": "int_const 1701...(31 digits omitted)...5727"
																						},
																						"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																					},
																					"src": "25844:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 6613,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "25886:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "25844:43:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"expression": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6624,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6617,
																						"name": "POSITIVE_INFINITY",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4343,
																						"src": "25921:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "|",
																					"rightExpression": {
																						"commonType": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						},
																						"id": 6623,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									},
																									"id": 6620,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 6618,
																										"name": "x",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6539,
																										"src": "25942:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "^",
																									"rightExpression": {
																										"id": 6619,
																										"name": "y",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6541,
																										"src": "25946:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes16",
																											"typeString": "bytes16"
																										}
																									},
																									"src": "25942:5:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								}
																							],
																							"id": 6621,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "25941:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "&",
																						"rightExpression": {
																							"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																							"id": 6622,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "25951:34:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																								"typeString": "int_const 1701...(31 digits omitted)...5728"
																							},
																							"value": "0x80000000000000000000000000000000"
																						},
																						"src": "25941:44:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"src": "25921:64:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 6545,
																				"id": 6625,
																				"nodeType": "Return",
																				"src": "25914:71:22"
																			},
																			"id": 6626,
																			"nodeType": "IfStatement",
																			"src": "25840:145:22",
																			"trueBody": {
																				"expression": {
																					"id": 6615,
																					"name": "NaN",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4349,
																					"src": "25896:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 6545,
																				"id": 6616,
																				"nodeType": "Return",
																				"src": "25889:10:22"
																			}
																		}
																	]
																}
															},
															"id": 6873,
															"nodeType": "IfStatement",
															"src": "25590:2432:22",
															"trueBody": {
																"id": 6604,
																"nodeType": "Block",
																"src": "25615:160:22",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			},
																			"id": 6591,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6589,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6587,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6541,
																					"src": "25629:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "30783030303046464646464646464646464646464646464646464646464646464646",
																					"id": 6588,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "25633:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0095"
																					},
																					"value": "0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "25629:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "!=",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 6590,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "25671:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "25629:43:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"expression": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6601,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6594,
																					"name": "POSITIVE_ZERO",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4337,
																					"src": "25706:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "|",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					},
																					"id": 6600,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"components": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								},
																								"id": 6597,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 6595,
																									"name": "x",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6539,
																									"src": "25723:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "^",
																								"rightExpression": {
																									"id": 6596,
																									"name": "y",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6541,
																									"src": "25727:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								},
																								"src": "25723:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							}
																						],
																						"id": 6598,
																						"isConstant": false,
																						"isInlineArray": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "TupleExpression",
																						"src": "25722:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																						"id": 6599,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "25732:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																							"typeString": "int_const 1701...(31 digits omitted)...5728"
																						},
																						"value": "0x80000000000000000000000000000000"
																					},
																					"src": "25722:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"src": "25706:60:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6545,
																			"id": 6602,
																			"nodeType": "Return",
																			"src": "25699:67:22"
																		},
																		"id": 6603,
																		"nodeType": "IfStatement",
																		"src": "25625:141:22",
																		"trueBody": {
																			"expression": {
																				"id": 6592,
																				"name": "NaN",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4349,
																				"src": "25681:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 6545,
																			"id": 6593,
																			"nodeType": "Return",
																			"src": "25674:10:22"
																		}
																	}
																]
															}
														},
														"id": 6874,
														"nodeType": "IfStatement",
														"src": "25441:2581:22",
														"trueBody": {
															"id": 6583,
															"nodeType": "Block",
															"src": "25466:118:22",
															"statements": [
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 6573,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 6571,
																			"name": "yExponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6558,
																			"src": "25480:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "307837464646",
																			"id": 6572,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "25493:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32767_by_1",
																				"typeString": "int_const 32767"
																			},
																			"value": "0x7FFF"
																		},
																		"src": "25480:19:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"expression": {
																			"commonType": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			},
																			"id": 6580,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 6576,
																				"name": "x",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 6539,
																				"src": "25533:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "^",
																			"rightExpression": {
																				"commonType": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				},
																				"id": 6579,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 6577,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6541,
																					"src": "25537:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&",
																				"rightExpression": {
																					"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																					"id": 6578,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "25541:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																						"typeString": "int_const 1701...(31 digits omitted)...5728"
																					},
																					"value": "0x80000000000000000000000000000000"
																				},
																				"src": "25537:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"src": "25533:42:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 6545,
																		"id": 6581,
																		"nodeType": "Return",
																		"src": "25526:49:22"
																	},
																	"id": 6582,
																	"nodeType": "IfStatement",
																	"src": "25476:99:22",
																	"trueBody": {
																		"expression": {
																			"id": 6574,
																			"name": "NaN",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4349,
																			"src": "25508:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 6545,
																		"id": 6575,
																		"nodeType": "Return",
																		"src": "25501:10:22"
																	}
																}
															]
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6537,
										"nodeType": "StructuredDocumentation",
										"src": "23985:1250:22",
										"text": " Calculate x / y.  Special values behave in the following way:\n NaN / x = NaN for any x.\n x / NaN = NaN for any x.\n Infinity / x = Infinity for any finite non-negative x.\n Infinity / x = -Infinity for any finite negative x including -0.\n -Infinity / x = -Infinity for any finite non-negative x.\n -Infinity / x = Infinity for any finite negative x including -0.\n x / Infinity = 0 for any finite non-negative x.\n x / -Infinity = -0 for any finite non-negative x.\n x / Infinity = -0 for any finite non-negative x including -0.\n x / -Infinity = 0 for any finite non-negative x including -0.\n \n Infinity / Infinity = NaN.\n Infinity / -Infinity = -NaN.\n -Infinity / Infinity = -NaN.\n -Infinity / -Infinity = NaN.\n Division by zero behaves in the following way:\n x / 0 = Infinity for any finite positive x.\n x / -0 = -Infinity for any finite positive x.\n x / 0 = -Infinity for any finite negative x.\n x / -0 = Infinity for any finite negative x.\n 0 / 0 = NaN.\n 0 / -0 = NaN.\n -0 / 0 = NaN.\n -0 / -0 = NaN.\n @param x quadruple precision number\n @param y quadruple precision number\n @return quadruple precision number"
									},
									"id": 6877,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "div",
									"nameLocation": "25247:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6542,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6539,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "25260:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6877,
												"src": "25252:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6538,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "25252:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6541,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "25271:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6877,
												"src": "25263:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6540,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "25263:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25251:22:22"
									},
									"returnParameters": {
										"id": 6545,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6544,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6877,
												"src": "25297:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6543,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "25297:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25296:9:22"
									},
									"scope": 9524,
									"src": "25238:2794:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6890,
										"nodeType": "Block",
										"src": "28210:80:22",
										"statements": [
											{
												"id": 6889,
												"nodeType": "UncheckedBlock",
												"src": "28216:70:22",
												"statements": [
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															},
															"id": 6887,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 6885,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6880,
																"src": "28241:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "^",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 6886,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "28245:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "28241:38:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 6884,
														"id": 6888,
														"nodeType": "Return",
														"src": "28234:45:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6878,
										"nodeType": "StructuredDocumentation",
										"src": "28036:114:22",
										"text": " Calculate -x.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 6891,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "neg",
									"nameLocation": "28162:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6881,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6880,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "28175:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "28167:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6879,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28167:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28166:11:22"
									},
									"returnParameters": {
										"id": 6884,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6883,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "28201:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6882,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28201:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28200:9:22"
									},
									"scope": 9524,
									"src": "28153:137:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6904,
										"nodeType": "Block",
										"src": "28469:80:22",
										"statements": [
											{
												"id": 6903,
												"nodeType": "UncheckedBlock",
												"src": "28475:70:22",
												"statements": [
													{
														"expression": {
															"commonType": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															},
															"id": 6901,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 6899,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6894,
																"src": "28500:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
																"id": 6900,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "28504:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5727"
																},
																"value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "28500:38:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 6898,
														"id": 6902,
														"nodeType": "Return",
														"src": "28493:45:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6892,
										"nodeType": "StructuredDocumentation",
										"src": "28294:115:22",
										"text": " Calculate |x|.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 6905,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "abs",
									"nameLocation": "28421:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6895,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6894,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "28434:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 6905,
												"src": "28426:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6893,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28426:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28425:11:22"
									},
									"returnParameters": {
										"id": 6898,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6897,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 6905,
												"src": "28460:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6896,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28460:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28459:9:22"
									},
									"scope": 9524,
									"src": "28412:137:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7170,
										"nodeType": "Block",
										"src": "28782:1829:22",
										"statements": [
											{
												"id": 7169,
												"nodeType": "UncheckedBlock",
												"src": "28788:1819:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 6918,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 6915,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 6908,
																		"src": "28819:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 6914,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "28810:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 6913,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "28810:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 6916,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "28810:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 6917,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "28825:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "28810:49:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"id": 7167,
															"nodeType": "Block",
															"src": "28884:1717:22",
															"statements": [
																{
																	"assignments": [
																		6922
																	],
																	"declarations": [
																		{
																			"constant": false,
																			"id": 6922,
																			"mutability": "mutable",
																			"name": "xExponent",
																			"nameLocation": "28902:9:22",
																			"nodeType": "VariableDeclaration",
																			"scope": 7167,
																			"src": "28894:17:22",
																			"stateVariable": false,
																			"storageLocation": "default",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"typeName": {
																				"id": 6921,
																				"name": "uint256",
																				"nodeType": "ElementaryTypeName",
																				"src": "28894:7:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"visibility": "internal"
																		}
																	],
																	"id": 6931,
																	"initialValue": {
																		"commonType": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		},
																		"id": 6930,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 6928,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"arguments": [
																					{
																						"id": 6925,
																						"name": "x",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6908,
																						"src": "28923:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					],
																					"id": 6924,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "28914:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_uint128_$",
																						"typeString": "type(uint128)"
																					},
																					"typeName": {
																						"id": 6923,
																						"name": "uint128",
																						"nodeType": "ElementaryTypeName",
																						"src": "28914:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 6926,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "28914:11:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">>",
																			"rightExpression": {
																				"hexValue": "313132",
																				"id": 6927,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "28929:3:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_112_by_1",
																					"typeString": "int_const 112"
																				},
																				"value": "112"
																			},
																			"src": "28914:18:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "&",
																		"rightExpression": {
																			"hexValue": "307837464646",
																			"id": 6929,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "28935:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32767_by_1",
																				"typeString": "int_const 32767"
																			},
																			"value": "0x7FFF"
																		},
																		"src": "28914:27:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint128",
																			"typeString": "uint128"
																		}
																	},
																	"nodeType": "VariableDeclarationStatement",
																	"src": "28894:47:22"
																},
																{
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 6934,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 6932,
																			"name": "xExponent",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6922,
																			"src": "28955:9:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "307837464646",
																			"id": 6933,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "28968:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32767_by_1",
																				"typeString": "int_const 32767"
																			},
																			"value": "0x7FFF"
																		},
																		"src": "28955:19:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"id": 7165,
																		"nodeType": "Block",
																		"src": "28999:1594:22",
																		"statements": [
																			{
																				"assignments": [
																					6938
																				],
																				"declarations": [
																					{
																						"constant": false,
																						"id": 6938,
																						"mutability": "mutable",
																						"name": "xSignifier",
																						"nameLocation": "29019:10:22",
																						"nodeType": "VariableDeclaration",
																						"scope": 7165,
																						"src": "29011:18:22",
																						"stateVariable": false,
																						"storageLocation": "default",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"typeName": {
																							"id": 6937,
																							"name": "uint256",
																							"nodeType": "ElementaryTypeName",
																							"src": "29011:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"visibility": "internal"
																					}
																				],
																				"id": 6945,
																				"initialValue": {
																					"commonType": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					},
																					"id": 6944,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"arguments": [
																							{
																								"id": 6941,
																								"name": "x",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6908,
																								"src": "29041:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_bytes16",
																									"typeString": "bytes16"
																								}
																							],
																							"id": 6940,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "ElementaryTypeNameExpression",
																							"src": "29032:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_type$_t_uint128_$",
																								"typeString": "type(uint128)"
																							},
																							"typeName": {
																								"id": 6939,
																								"name": "uint128",
																								"nodeType": "ElementaryTypeName",
																								"src": "29032:7:22",
																								"typeDescriptions": {}
																							}
																						},
																						"id": 6942,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "typeConversion",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "29032:11:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																						"id": 6943,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "29046:30:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																							"typeString": "int_const 5192...(26 digits omitted)...0095"
																						},
																						"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																					},
																					"src": "29032:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				},
																				"nodeType": "VariableDeclarationStatement",
																				"src": "29011:65:22"
																			},
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6948,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6946,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6922,
																						"src": "29092:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 6947,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "29105:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "29092:14:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"expression": {
																						"id": 6955,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 6953,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6938,
																							"src": "29138:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "|=",
																						"rightHandSide": {
																							"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																							"id": 6954,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "29152:31:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																								"typeString": "int_const 5192...(26 digits omitted)...0096"
																							},
																							"value": "0x10000000000000000000000000000"
																						},
																						"src": "29138:45:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 6956,
																					"nodeType": "ExpressionStatement",
																					"src": "29138:45:22"
																				},
																				"id": 6957,
																				"nodeType": "IfStatement",
																				"src": "29088:95:22",
																				"trueBody": {
																					"expression": {
																						"id": 6951,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 6949,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6922,
																							"src": "29108:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"hexValue": "31",
																							"id": 6950,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "29120:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "29108:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 6952,
																					"nodeType": "ExpressionStatement",
																					"src": "29108:13:22"
																				}
																			},
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6960,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 6958,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6938,
																						"src": "29200:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 6959,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "29214:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "29200:15:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"id": 6963,
																				"nodeType": "IfStatement",
																				"src": "29196:41:22",
																				"trueBody": {
																					"expression": {
																						"id": 6961,
																						"name": "POSITIVE_ZERO",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4337,
																						"src": "29224:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 6912,
																					"id": 6962,
																					"nodeType": "Return",
																					"src": "29217:20:22"
																				}
																			},
																			{
																				"assignments": [
																					6965
																				],
																				"declarations": [
																					{
																						"constant": false,
																						"id": 6965,
																						"mutability": "mutable",
																						"name": "oddExponent",
																						"nameLocation": "29255:11:22",
																						"nodeType": "VariableDeclaration",
																						"scope": 7165,
																						"src": "29250:16:22",
																						"stateVariable": false,
																						"storageLocation": "default",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						},
																						"typeName": {
																							"id": 6964,
																							"name": "bool",
																							"nodeType": "ElementaryTypeName",
																							"src": "29250:4:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							}
																						},
																						"visibility": "internal"
																					}
																				],
																				"id": 6971,
																				"initialValue": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 6970,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6968,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 6966,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 6922,
																							"src": "29269:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "&",
																						"rightExpression": {
																							"hexValue": "307831",
																							"id": 6967,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "29281:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "0x1"
																						},
																						"src": "29269:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "==",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 6969,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "29288:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "29269:20:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"nodeType": "VariableDeclarationStatement",
																				"src": "29250:39:22"
																			},
																			{
																				"expression": {
																					"id": 6978,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 6972,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6922,
																						"src": "29301:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 6977,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 6975,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 6973,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 6922,
																								"src": "29313:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "+",
																							"rightExpression": {
																								"hexValue": "3136333833",
																								"id": 6974,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "29325:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_16383_by_1",
																									"typeString": "int_const 16383"
																								},
																								"value": "16383"
																							},
																							"src": "29313:17:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 6976,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "29334:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "29313:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "29301:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 6979,
																				"nodeType": "ExpressionStatement",
																				"src": "29301:34:22"
																			},
																			{
																				"condition": {
																					"id": 6980,
																					"name": "oddExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 6965,
																					"src": "29352:11:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"id": 7054,
																					"nodeType": "Block",
																					"src": "29706:335:22",
																					"statements": [
																						{
																							"condition": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 7020,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 7018,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6938,
																									"src": "29724:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": ">=",
																								"rightExpression": {
																									"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																									"id": 7019,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "29738:31:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																										"typeString": "int_const 5192...(26 digits omitted)...0096"
																									},
																									"value": "0x10000000000000000000000000000"
																								},
																								"src": "29724:45:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"falseBody": {
																								"id": 7052,
																								"nodeType": "Block",
																								"src": "29822:207:22",
																								"statements": [
																									{
																										"assignments": [
																											7026
																										],
																										"declarations": [
																											{
																												"constant": false,
																												"id": 7026,
																												"mutability": "mutable",
																												"name": "msb",
																												"nameLocation": "29846:3:22",
																												"nodeType": "VariableDeclaration",
																												"scope": 7052,
																												"src": "29838:11:22",
																												"stateVariable": false,
																												"storageLocation": "default",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"typeName": {
																													"id": 7025,
																													"name": "uint256",
																													"nodeType": "ElementaryTypeName",
																													"src": "29838:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"visibility": "internal"
																											}
																										],
																										"id": 7030,
																										"initialValue": {
																											"arguments": [
																												{
																													"id": 7028,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6938,
																													"src": "29872:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												}
																											],
																											"expression": {
																												"argumentTypes": [
																													{
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												],
																												"id": 7027,
																												"name": "mostSignificantBit",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 9523,
																												"src": "29852:18:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																													"typeString": "function (uint256) pure returns (uint256)"
																												}
																											},
																											"id": 7029,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"kind": "functionCall",
																											"lValueRequested": false,
																											"nameLocations": [],
																											"names": [],
																											"nodeType": "FunctionCall",
																											"src": "29852:31:22",
																											"tryCall": false,
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "VariableDeclarationStatement",
																										"src": "29838:45:22"
																									},
																									{
																										"assignments": [
																											7032
																										],
																										"declarations": [
																											{
																												"constant": false,
																												"id": 7032,
																												"mutability": "mutable",
																												"name": "shift",
																												"nameLocation": "29907:5:22",
																												"nodeType": "VariableDeclaration",
																												"scope": 7052,
																												"src": "29899:13:22",
																												"stateVariable": false,
																												"storageLocation": "default",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"typeName": {
																													"id": 7031,
																													"name": "uint256",
																													"nodeType": "ElementaryTypeName",
																													"src": "29899:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"visibility": "internal"
																											}
																										],
																										"id": 7039,
																										"initialValue": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 7038,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"components": [
																													{
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 7035,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"hexValue": "323235",
																															"id": 7033,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "29916:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_225_by_1",
																																"typeString": "int_const 225"
																															},
																															"value": "225"
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "-",
																														"rightExpression": {
																															"id": 7034,
																															"name": "msb",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 7026,
																															"src": "29922:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "29916:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													}
																												],
																												"id": 7036,
																												"isConstant": false,
																												"isInlineArray": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"nodeType": "TupleExpression",
																												"src": "29915:11:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "&",
																											"rightExpression": {
																												"hexValue": "30784645",
																												"id": 7037,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "29929:4:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_254_by_1",
																													"typeString": "int_const 254"
																												},
																												"value": "0xFE"
																											},
																											"src": "29915:18:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "VariableDeclarationStatement",
																										"src": "29899:34:22"
																									},
																									{
																										"expression": {
																											"id": 7042,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 7040,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6938,
																												"src": "29949:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "<<=",
																											"rightHandSide": {
																												"id": 7041,
																												"name": "shift",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 7032,
																												"src": "29964:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "29949:20:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 7043,
																										"nodeType": "ExpressionStatement",
																										"src": "29949:20:22"
																									},
																									{
																										"expression": {
																											"id": 7050,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 7044,
																												"name": "xExponent",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6922,
																												"src": "29985:9:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "-=",
																											"rightHandSide": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 7049,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7047,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 7045,
																														"name": "shift",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7032,
																														"src": "29998:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"hexValue": "313132",
																														"id": 7046,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "30006:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_112_by_1",
																															"typeString": "int_const 112"
																														},
																														"value": "112"
																													},
																													"src": "29998:11:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": ">>",
																												"rightExpression": {
																													"hexValue": "31",
																													"id": 7048,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "30013:1:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_1_by_1",
																														"typeString": "int_const 1"
																													},
																													"value": "1"
																												},
																												"src": "29998:16:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "29985:29:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 7051,
																										"nodeType": "ExpressionStatement",
																										"src": "29985:29:22"
																									}
																								]
																							},
																							"id": 7053,
																							"nodeType": "IfStatement",
																							"src": "29720:309:22",
																							"trueBody": {
																								"expression": {
																									"id": 7023,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7021,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6938,
																										"src": "29785:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "<<=",
																									"rightHandSide": {
																										"hexValue": "313132",
																										"id": 7022,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "29800:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"src": "29785:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 7024,
																								"nodeType": "ExpressionStatement",
																								"src": "29785:18:22"
																							}
																						}
																					]
																				},
																				"id": 7055,
																				"nodeType": "IfStatement",
																				"src": "29348:693:22",
																				"trueBody": {
																					"id": 7017,
																					"nodeType": "Block",
																					"src": "29365:335:22",
																					"statements": [
																						{
																							"condition": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 6983,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"id": 6981,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 6938,
																									"src": "29383:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": ">=",
																								"rightExpression": {
																									"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																									"id": 6982,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "29397:31:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																										"typeString": "int_const 5192...(26 digits omitted)...0096"
																									},
																									"value": "0x10000000000000000000000000000"
																								},
																								"src": "29383:45:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"falseBody": {
																								"id": 7015,
																								"nodeType": "Block",
																								"src": "29481:207:22",
																								"statements": [
																									{
																										"assignments": [
																											6989
																										],
																										"declarations": [
																											{
																												"constant": false,
																												"id": 6989,
																												"mutability": "mutable",
																												"name": "msb",
																												"nameLocation": "29505:3:22",
																												"nodeType": "VariableDeclaration",
																												"scope": 7015,
																												"src": "29497:11:22",
																												"stateVariable": false,
																												"storageLocation": "default",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"typeName": {
																													"id": 6988,
																													"name": "uint256",
																													"nodeType": "ElementaryTypeName",
																													"src": "29497:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"visibility": "internal"
																											}
																										],
																										"id": 6993,
																										"initialValue": {
																											"arguments": [
																												{
																													"id": 6991,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 6938,
																													"src": "29531:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												}
																											],
																											"expression": {
																												"argumentTypes": [
																													{
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												],
																												"id": 6990,
																												"name": "mostSignificantBit",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 9523,
																												"src": "29511:18:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																													"typeString": "function (uint256) pure returns (uint256)"
																												}
																											},
																											"id": 6992,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"kind": "functionCall",
																											"lValueRequested": false,
																											"nameLocations": [],
																											"names": [],
																											"nodeType": "FunctionCall",
																											"src": "29511:31:22",
																											"tryCall": false,
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "VariableDeclarationStatement",
																										"src": "29497:45:22"
																									},
																									{
																										"assignments": [
																											6995
																										],
																										"declarations": [
																											{
																												"constant": false,
																												"id": 6995,
																												"mutability": "mutable",
																												"name": "shift",
																												"nameLocation": "29566:5:22",
																												"nodeType": "VariableDeclaration",
																												"scope": 7015,
																												"src": "29558:13:22",
																												"stateVariable": false,
																												"storageLocation": "default",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"typeName": {
																													"id": 6994,
																													"name": "uint256",
																													"nodeType": "ElementaryTypeName",
																													"src": "29558:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"visibility": "internal"
																											}
																										],
																										"id": 7002,
																										"initialValue": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 7001,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"components": [
																													{
																														"commonType": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														},
																														"id": 6998,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"leftExpression": {
																															"hexValue": "323236",
																															"id": 6996,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "29575:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_226_by_1",
																																"typeString": "int_const 226"
																															},
																															"value": "226"
																														},
																														"nodeType": "BinaryOperation",
																														"operator": "-",
																														"rightExpression": {
																															"id": 6997,
																															"name": "msb",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 6989,
																															"src": "29581:3:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_uint256",
																																"typeString": "uint256"
																															}
																														},
																														"src": "29575:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													}
																												],
																												"id": 6999,
																												"isConstant": false,
																												"isInlineArray": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"nodeType": "TupleExpression",
																												"src": "29574:11:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "&",
																											"rightExpression": {
																												"hexValue": "30784645",
																												"id": 7000,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "29588:4:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_254_by_1",
																													"typeString": "int_const 254"
																												},
																												"value": "0xFE"
																											},
																											"src": "29574:18:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "VariableDeclarationStatement",
																										"src": "29558:34:22"
																									},
																									{
																										"expression": {
																											"id": 7005,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 7003,
																												"name": "xSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6938,
																												"src": "29608:10:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "<<=",
																											"rightHandSide": {
																												"id": 7004,
																												"name": "shift",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6995,
																												"src": "29623:5:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "29608:20:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 7006,
																										"nodeType": "ExpressionStatement",
																										"src": "29608:20:22"
																									},
																									{
																										"expression": {
																											"id": 7013,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftHandSide": {
																												"id": 7007,
																												"name": "xExponent",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 6922,
																												"src": "29644:9:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "Assignment",
																											"operator": "-=",
																											"rightHandSide": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 7012,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7010,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 7008,
																														"name": "shift",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 6995,
																														"src": "29657:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"hexValue": "313132",
																														"id": 7009,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "29665:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_112_by_1",
																															"typeString": "int_const 112"
																														},
																														"value": "112"
																													},
																													"src": "29657:11:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": ">>",
																												"rightExpression": {
																													"hexValue": "31",
																													"id": 7011,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "29672:1:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_1_by_1",
																														"typeString": "int_const 1"
																													},
																													"value": "1"
																												},
																												"src": "29657:16:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "29644:29:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"id": 7014,
																										"nodeType": "ExpressionStatement",
																										"src": "29644:29:22"
																									}
																								]
																							},
																							"id": 7016,
																							"nodeType": "IfStatement",
																							"src": "29379:309:22",
																							"trueBody": {
																								"expression": {
																									"id": 6986,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 6984,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 6938,
																										"src": "29444:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "<<=",
																									"rightHandSide": {
																										"hexValue": "313133",
																										"id": 6985,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "29459:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_113_by_1",
																											"typeString": "int_const 113"
																										},
																										"value": "113"
																									},
																									"src": "29444:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 6987,
																								"nodeType": "ExpressionStatement",
																								"src": "29444:18:22"
																							}
																						}
																					]
																				}
																			},
																			{
																				"assignments": [
																					7057
																				],
																				"declarations": [
																					{
																						"constant": false,
																						"id": 7057,
																						"mutability": "mutable",
																						"name": "r",
																						"nameLocation": "30061:1:22",
																						"nodeType": "VariableDeclaration",
																						"scope": 7165,
																						"src": "30053:9:22",
																						"stateVariable": false,
																						"storageLocation": "default",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"typeName": {
																							"id": 7056,
																							"name": "uint256",
																							"nodeType": "ElementaryTypeName",
																							"src": "30053:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"visibility": "internal"
																					}
																				],
																				"id": 7059,
																				"initialValue": {
																					"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																					"id": 7058,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "30065:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																						"typeString": "int_const 5192...(26 digits omitted)...0096"
																					},
																					"value": "0x10000000000000000000000000000"
																				},
																				"nodeType": "VariableDeclarationStatement",
																				"src": "30053:43:22"
																			},
																			{
																				"expression": {
																					"id": 7069,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7060,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30108:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7068,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7065,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7061,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30113:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7064,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7062,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30117:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7063,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30130:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30117:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30113:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7066,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30112:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7067,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30136:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30112:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30108:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7070,
																				"nodeType": "ExpressionStatement",
																				"src": "30108:29:22"
																			},
																			{
																				"expression": {
																					"id": 7080,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7071,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30149:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7079,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7076,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7072,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30154:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7075,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7073,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30158:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7074,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30171:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30158:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30154:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7077,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30153:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7078,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30177:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30153:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30149:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7081,
																				"nodeType": "ExpressionStatement",
																				"src": "30149:29:22"
																			},
																			{
																				"expression": {
																					"id": 7091,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7082,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30190:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7090,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7087,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7083,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30195:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7086,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7084,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30199:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7085,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30212:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30199:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30195:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7088,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30194:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7089,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30218:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30194:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30190:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7092,
																				"nodeType": "ExpressionStatement",
																				"src": "30190:29:22"
																			},
																			{
																				"expression": {
																					"id": 7102,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7093,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30231:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7101,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7098,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7094,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30236:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7097,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7095,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30240:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7096,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30253:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30240:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30236:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7099,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30235:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7100,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30259:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30235:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30231:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7103,
																				"nodeType": "ExpressionStatement",
																				"src": "30231:29:22"
																			},
																			{
																				"expression": {
																					"id": 7113,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7104,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30272:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7112,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7109,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7105,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30277:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7108,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7106,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30281:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7107,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30294:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30281:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30277:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7110,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30276:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7111,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30300:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30276:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30272:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7114,
																				"nodeType": "ExpressionStatement",
																				"src": "30272:29:22"
																			},
																			{
																				"expression": {
																					"id": 7124,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7115,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30313:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7123,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7120,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7116,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30318:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7119,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7117,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30322:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7118,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30335:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30322:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30318:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7121,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30317:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7122,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30341:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30317:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30313:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7125,
																				"nodeType": "ExpressionStatement",
																				"src": "30313:29:22"
																			},
																			{
																				"expression": {
																					"id": 7135,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7126,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30354:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7134,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7131,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7127,
																										"name": "r",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7057,
																										"src": "30359:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7130,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7128,
																											"name": "xSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6938,
																											"src": "30363:10:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 7129,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30376:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "30363:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30359:18:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 7132,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "30358:20:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "31",
																							"id": 7133,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "30382:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1_by_1",
																								"typeString": "int_const 1"
																							},
																							"value": "1"
																						},
																						"src": "30358:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30354:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7136,
																				"nodeType": "ExpressionStatement",
																				"src": "30354:29:22"
																			},
																			{
																				"assignments": [
																					7138
																				],
																				"declarations": [
																					{
																						"constant": false,
																						"id": 7138,
																						"mutability": "mutable",
																						"name": "r1",
																						"nameLocation": "30440:2:22",
																						"nodeType": "VariableDeclaration",
																						"scope": 7165,
																						"src": "30432:10:22",
																						"stateVariable": false,
																						"storageLocation": "default",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"typeName": {
																							"id": 7137,
																							"name": "uint256",
																							"nodeType": "ElementaryTypeName",
																							"src": "30432:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"visibility": "internal"
																					}
																				],
																				"id": 7142,
																				"initialValue": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7141,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7139,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 6938,
																						"src": "30445:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "/",
																					"rightExpression": {
																						"id": 7140,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30458:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30445:14:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "VariableDeclarationStatement",
																				"src": "30432:27:22"
																			},
																			{
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7145,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7143,
																						"name": "r1",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7138,
																						"src": "30475:2:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<",
																					"rightExpression": {
																						"id": 7144,
																						"name": "r",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7057,
																						"src": "30480:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "30475:6:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"id": 7150,
																				"nodeType": "IfStatement",
																				"src": "30471:18:22",
																				"trueBody": {
																					"expression": {
																						"id": 7148,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 7146,
																							"name": "r",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7057,
																							"src": "30483:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"id": 7147,
																							"name": "r1",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7138,
																							"src": "30487:2:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "30483:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 7149,
																					"nodeType": "ExpressionStatement",
																					"src": "30483:6:22"
																				}
																			},
																			{
																				"expression": {
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7161,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7157,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7155,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 6922,
																											"src": "30527:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "<<",
																										"rightExpression": {
																											"hexValue": "313132",
																											"id": 7156,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "30540:3:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_112_by_1",
																												"typeString": "int_const 112"
																											},
																											"value": "112"
																										},
																										"src": "30527:16:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "|",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7160,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7158,
																											"name": "r",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7057,
																											"src": "30546:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "&",
																										"rightExpression": {
																											"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																											"id": 7159,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "30550:30:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																												"typeString": "int_const 5192...(26 digits omitted)...0095"
																											},
																											"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																										},
																										"src": "30546:34:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "30527:53:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"expression": {
																								"argumentTypes": [
																									{
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								],
																								"id": 7154,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"lValueRequested": false,
																								"nodeType": "ElementaryTypeNameExpression",
																								"src": "30518:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_type$_t_uint128_$",
																									"typeString": "type(uint128)"
																								},
																								"typeName": {
																									"id": 7153,
																									"name": "uint128",
																									"nodeType": "ElementaryTypeName",
																									"src": "30518:7:22",
																									"typeDescriptions": {}
																								}
																							},
																							"id": 7162,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"kind": "typeConversion",
																							"lValueRequested": false,
																							"nameLocations": [],
																							"names": [],
																							"nodeType": "FunctionCall",
																							"src": "30518:63:22",
																							"tryCall": false,
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint128",
																								"typeString": "uint128"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_uint128",
																								"typeString": "uint128"
																							}
																						],
																						"id": 7152,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "30509:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_bytes16_$",
																							"typeString": "type(bytes16)"
																						},
																						"typeName": {
																							"id": 7151,
																							"name": "bytes16",
																							"nodeType": "ElementaryTypeName",
																							"src": "30509:7:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 7163,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "30509:73:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 6912,
																				"id": 7164,
																				"nodeType": "Return",
																				"src": "30502:80:22"
																			}
																		]
																	},
																	"id": 7166,
																	"nodeType": "IfStatement",
																	"src": "28951:1642:22",
																	"trueBody": {
																		"expression": {
																			"id": 6935,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 6908,
																			"src": "28983:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		"functionReturnParameters": 6912,
																		"id": 6936,
																		"nodeType": "Return",
																		"src": "28976:8:22"
																	}
																}
															]
														},
														"id": 7168,
														"nodeType": "IfStatement",
														"src": "28806:1795:22",
														"trueBody": {
															"expression": {
																"id": 6919,
																"name": "NaN",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4349,
																"src": "28868:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 6912,
															"id": 6920,
															"nodeType": "Return",
															"src": "28861:10:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 6906,
										"nodeType": "StructuredDocumentation",
										"src": "28553:168:22",
										"text": " Calculate square root of x.  Return NaN on negative x excluding -0.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 7171,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sqrt",
									"nameLocation": "28733:4:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6909,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6908,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "28747:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 7171,
												"src": "28739:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6907,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28739:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28738:11:22"
									},
									"returnParameters": {
										"id": 6912,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6911,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 7171,
												"src": "28773:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 6910,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "28773:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28772:9:22"
									},
									"scope": 9524,
									"src": "28724:1887:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7399,
										"nodeType": "Block",
										"src": "30850:2087:22",
										"statements": [
											{
												"id": 7398,
												"nodeType": "UncheckedBlock",
												"src": "30856:2077:22",
												"statements": [
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 7184,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 7181,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7174,
																		"src": "30887:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 7180,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "30878:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 7179,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "30878:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 7182,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "30878:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 7183,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "30892:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "30878:48:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																},
																"id": 7189,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 7187,
																	"name": "x",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7174,
																	"src": "30955:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "30783346464630303030303030303030303030303030303030303030303030303030",
																	"id": 7188,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30960:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_85065399433376081038215121361612832768_by_1",
																		"typeString": "int_const 8506...(30 digits omitted)...2768"
																	},
																	"value": "0x3FFF0000000000000000000000000000"
																},
																"src": "30955:39:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 7395,
																"nodeType": "Block",
																"src": "31030:1897:22",
																"statements": [
																	{
																		"assignments": [
																			7193
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 7193,
																				"mutability": "mutable",
																				"name": "xExponent",
																				"nameLocation": "31048:9:22",
																				"nodeType": "VariableDeclaration",
																				"scope": 7395,
																				"src": "31040:17:22",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 7192,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "31040:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 7202,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			},
																			"id": 7201,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"commonType": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				},
																				"id": 7199,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"arguments": [
																						{
																							"id": 7196,
																							"name": "x",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7174,
																							"src": "31069:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						],
																						"id": 7195,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "31060:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_uint128_$",
																							"typeString": "type(uint128)"
																						},
																						"typeName": {
																							"id": 7194,
																							"name": "uint128",
																							"nodeType": "ElementaryTypeName",
																							"src": "31060:7:22",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 7197,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"nameLocations": [],
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "31060:11:22",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint128",
																						"typeString": "uint128"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">>",
																				"rightExpression": {
																					"hexValue": "313132",
																					"id": 7198,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "31075:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_112_by_1",
																						"typeString": "int_const 112"
																					},
																					"value": "112"
																				},
																				"src": "31060:18:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint128",
																					"typeString": "uint128"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "&",
																			"rightExpression": {
																				"hexValue": "307837464646",
																				"id": 7200,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "31081:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_32767_by_1",
																					"typeString": "int_const 32767"
																				},
																				"value": "0x7FFF"
																			},
																			"src": "31060:27:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint128",
																				"typeString": "uint128"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "31040:47:22"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 7205,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 7203,
																				"name": "xExponent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 7193,
																				"src": "31101:9:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "==",
																			"rightExpression": {
																				"hexValue": "307837464646",
																				"id": 7204,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "31114:6:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_32767_by_1",
																					"typeString": "int_const 32767"
																				},
																				"value": "0x7FFF"
																			},
																			"src": "31101:19:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"id": 7393,
																			"nodeType": "Block",
																			"src": "31145:1774:22",
																			"statements": [
																				{
																					"assignments": [
																						7209
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 7209,
																							"mutability": "mutable",
																							"name": "xSignifier",
																							"nameLocation": "31165:10:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 7393,
																							"src": "31157:18:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 7208,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "31157:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 7216,
																					"initialValue": {
																						"commonType": {
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						},
																						"id": 7215,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"arguments": [
																								{
																									"id": 7212,
																									"name": "x",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7174,
																									"src": "31187:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								}
																							],
																							"expression": {
																								"argumentTypes": [
																									{
																										"typeIdentifier": "t_bytes16",
																										"typeString": "bytes16"
																									}
																								],
																								"id": 7211,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"lValueRequested": false,
																								"nodeType": "ElementaryTypeNameExpression",
																								"src": "31178:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_type$_t_uint128_$",
																									"typeString": "type(uint128)"
																								},
																								"typeName": {
																									"id": 7210,
																									"name": "uint128",
																									"nodeType": "ElementaryTypeName",
																									"src": "31178:7:22",
																									"typeDescriptions": {}
																								}
																							},
																							"id": 7213,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"kind": "typeConversion",
																							"lValueRequested": false,
																							"nameLocations": [],
																							"names": [],
																							"nodeType": "FunctionCall",
																							"src": "31178:11:22",
																							"tryCall": false,
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint128",
																								"typeString": "uint128"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "&",
																						"rightExpression": {
																							"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																							"id": 7214,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "31192:30:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																								"typeString": "int_const 5192...(26 digits omitted)...0095"
																							},
																							"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																						},
																						"src": "31178:44:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "31157:65:22"
																				},
																				{
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7219,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 7217,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7193,
																							"src": "31238:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "==",
																						"rightExpression": {
																							"hexValue": "30",
																							"id": 7218,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "31251:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_0_by_1",
																								"typeString": "int_const 0"
																							},
																							"value": "0"
																						},
																						"src": "31238:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseBody": {
																						"expression": {
																							"id": 7226,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 7224,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7209,
																								"src": "31284:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "|=",
																							"rightHandSide": {
																								"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																								"id": 7225,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "31298:31:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																									"typeString": "int_const 5192...(26 digits omitted)...0096"
																								},
																								"value": "0x10000000000000000000000000000"
																							},
																							"src": "31284:45:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 7227,
																						"nodeType": "ExpressionStatement",
																						"src": "31284:45:22"
																					},
																					"id": 7228,
																					"nodeType": "IfStatement",
																					"src": "31234:95:22",
																					"trueBody": {
																						"expression": {
																							"id": 7222,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 7220,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7193,
																								"src": "31254:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"hexValue": "31",
																								"id": 7221,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "31266:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_1_by_1",
																									"typeString": "int_const 1"
																								},
																								"value": "1"
																							},
																							"src": "31254:13:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 7223,
																						"nodeType": "ExpressionStatement",
																						"src": "31254:13:22"
																					}
																				},
																				{
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7231,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 7229,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7209,
																							"src": "31346:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "==",
																						"rightExpression": {
																							"hexValue": "30",
																							"id": 7230,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "31360:1:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_0_by_1",
																								"typeString": "int_const 0"
																							},
																							"value": "0"
																						},
																						"src": "31346:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"id": 7234,
																					"nodeType": "IfStatement",
																					"src": "31342:45:22",
																					"trueBody": {
																						"expression": {
																							"id": 7232,
																							"name": "NEGATIVE_INFINITY",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 4346,
																							"src": "31370:17:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bytes16",
																								"typeString": "bytes16"
																							}
																						},
																						"functionReturnParameters": 7178,
																						"id": 7233,
																						"nodeType": "Return",
																						"src": "31363:24:22"
																					}
																				},
																				{
																					"assignments": [
																						7236
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 7236,
																							"mutability": "mutable",
																							"name": "resultNegative",
																							"nameLocation": "31405:14:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 7393,
																							"src": "31400:19:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_bool",
																								"typeString": "bool"
																							},
																							"typeName": {
																								"id": 7235,
																								"name": "bool",
																								"nodeType": "ElementaryTypeName",
																								"src": "31400:4:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_bool",
																									"typeString": "bool"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 7237,
																					"nodeType": "VariableDeclarationStatement",
																					"src": "31400:19:22"
																				},
																				{
																					"assignments": [
																						7239
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 7239,
																							"mutability": "mutable",
																							"name": "resultExponent",
																							"nameLocation": "31439:14:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 7393,
																							"src": "31431:22:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 7238,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "31431:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 7241,
																					"initialValue": {
																						"hexValue": "3136343935",
																						"id": 7240,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "31456:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16495_by_1",
																							"typeString": "int_const 16495"
																						},
																						"value": "16495"
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "31431:30:22"
																				},
																				{
																					"assignments": [
																						7243
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 7243,
																							"mutability": "mutable",
																							"name": "resultSignifier",
																							"nameLocation": "31481:15:22",
																							"nodeType": "VariableDeclaration",
																							"scope": 7393,
																							"src": "31473:23:22",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 7242,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "31473:7:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 7244,
																					"nodeType": "VariableDeclarationStatement",
																					"src": "31473:23:22"
																				},
																				{
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7247,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 7245,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7193,
																							"src": "31513:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">=",
																						"rightExpression": {
																							"hexValue": "307833464646",
																							"id": 7246,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "31526:6:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_16383_by_1",
																								"typeString": "int_const 16383"
																							},
																							"value": "0x3FFF"
																						},
																						"src": "31513:19:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseBody": {
																						"id": 7301,
																						"nodeType": "Block",
																						"src": "31670:379:22",
																						"statements": [
																							{
																								"expression": {
																									"id": 7265,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7263,
																										"name": "resultNegative",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7236,
																										"src": "31684:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "=",
																									"rightHandSide": {
																										"hexValue": "74727565",
																										"id": 7264,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "bool",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "31701:4:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										},
																										"value": "true"
																									},
																									"src": "31684:21:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 7266,
																								"nodeType": "ExpressionStatement",
																								"src": "31684:21:22"
																							},
																							{
																								"condition": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7269,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7267,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7209,
																										"src": "31723:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": ">=",
																									"rightExpression": {
																										"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																										"id": 7268,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "31737:31:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																											"typeString": "int_const 5192...(26 digits omitted)...0096"
																										},
																										"value": "0x10000000000000000000000000000"
																									},
																									"src": "31723:45:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"falseBody": {
																									"id": 7299,
																									"nodeType": "Block",
																									"src": "31876:161:22",
																									"statements": [
																										{
																											"assignments": [
																												7282
																											],
																											"declarations": [
																												{
																													"constant": false,
																													"id": 7282,
																													"mutability": "mutable",
																													"name": "msb",
																													"nameLocation": "31900:3:22",
																													"nodeType": "VariableDeclaration",
																													"scope": 7299,
																													"src": "31892:11:22",
																													"stateVariable": false,
																													"storageLocation": "default",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"typeName": {
																														"id": 7281,
																														"name": "uint256",
																														"nodeType": "ElementaryTypeName",
																														"src": "31892:7:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"visibility": "internal"
																												}
																											],
																											"id": 7286,
																											"initialValue": {
																												"arguments": [
																													{
																														"id": 7284,
																														"name": "xSignifier",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7209,
																														"src": "31926:10:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													}
																												],
																												"expression": {
																													"argumentTypes": [
																														{
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													],
																													"id": 7283,
																													"name": "mostSignificantBit",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 9523,
																													"src": "31906:18:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																														"typeString": "function (uint256) pure returns (uint256)"
																													}
																												},
																												"id": 7285,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"kind": "functionCall",
																												"lValueRequested": false,
																												"nameLocations": [],
																												"names": [],
																												"nodeType": "FunctionCall",
																												"src": "31906:31:22",
																												"tryCall": false,
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "VariableDeclarationStatement",
																											"src": "31892:45:22"
																										},
																										{
																											"expression": {
																												"id": 7291,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7287,
																													"name": "resultSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7243,
																													"src": "31953:15:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7290,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"hexValue": "3136343933",
																														"id": 7288,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "31971:5:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_16493_by_1",
																															"typeString": "int_const 16493"
																														},
																														"value": "16493"
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"id": 7289,
																														"name": "msb",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7282,
																														"src": "31979:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "31971:11:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "31953:29:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7292,
																											"nodeType": "ExpressionStatement",
																											"src": "31953:29:22"
																										},
																										{
																											"expression": {
																												"id": 7297,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7293,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "31998:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "<<=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7296,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"hexValue": "313237",
																														"id": 7294,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "32013:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_127_by_1",
																															"typeString": "int_const 127"
																														},
																														"value": "127"
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"id": 7295,
																														"name": "msb",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7282,
																														"src": "32019:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "32013:9:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "31998:24:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7298,
																											"nodeType": "ExpressionStatement",
																											"src": "31998:24:22"
																										}
																									]
																								},
																								"id": 7300,
																								"nodeType": "IfStatement",
																								"src": "31719:318:22",
																								"trueBody": {
																									"id": 7280,
																									"nodeType": "Block",
																									"src": "31770:100:22",
																									"statements": [
																										{
																											"expression": {
																												"id": 7274,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7270,
																													"name": "resultSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7243,
																													"src": "31786:15:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7273,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"hexValue": "307833464645",
																														"id": 7271,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "31804:6:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_16382_by_1",
																															"typeString": "int_const 16382"
																														},
																														"value": "0x3FFE"
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "-",
																													"rightExpression": {
																														"id": 7272,
																														"name": "xExponent",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7193,
																														"src": "31813:9:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "31804:18:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "31786:36:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7275,
																											"nodeType": "ExpressionStatement",
																											"src": "31786:36:22"
																										},
																										{
																											"expression": {
																												"id": 7278,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7276,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "31838:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "<<=",
																												"rightHandSide": {
																													"hexValue": "3135",
																													"id": 7277,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "31853:2:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_15_by_1",
																														"typeString": "int_const 15"
																													},
																													"value": "15"
																												},
																												"src": "31838:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7279,
																											"nodeType": "ExpressionStatement",
																											"src": "31838:17:22"
																										}
																									]
																								}
																							}
																						]
																					},
																					"id": 7302,
																					"nodeType": "IfStatement",
																					"src": "31509:540:22",
																					"trueBody": {
																						"id": 7262,
																						"nodeType": "Block",
																						"src": "31534:130:22",
																						"statements": [
																							{
																								"expression": {
																									"id": 7250,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7248,
																										"name": "resultNegative",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7236,
																										"src": "31548:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "=",
																									"rightHandSide": {
																										"hexValue": "66616c7365",
																										"id": 7249,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "bool",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "31565:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										},
																										"value": "false"
																									},
																									"src": "31548:22:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 7251,
																								"nodeType": "ExpressionStatement",
																								"src": "31548:22:22"
																							},
																							{
																								"expression": {
																									"id": 7256,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7252,
																										"name": "resultSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7243,
																										"src": "31584:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "=",
																									"rightHandSide": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7255,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 7253,
																											"name": "xExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7193,
																											"src": "31602:9:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"hexValue": "307833464646",
																											"id": 7254,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "31614:6:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_16383_by_1",
																												"typeString": "int_const 16383"
																											},
																											"value": "0x3FFF"
																										},
																										"src": "31602:18:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "31584:36:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 7257,
																								"nodeType": "ExpressionStatement",
																								"src": "31584:36:22"
																							},
																							{
																								"expression": {
																									"id": 7260,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7258,
																										"name": "xSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7209,
																										"src": "31634:10:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "<<=",
																									"rightHandSide": {
																										"hexValue": "3135",
																										"id": 7259,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "31649:2:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_15_by_1",
																											"typeString": "int_const 15"
																										},
																										"value": "15"
																									},
																									"src": "31634:17:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 7261,
																								"nodeType": "ExpressionStatement",
																								"src": "31634:17:22"
																							}
																						]
																					}
																				},
																				{
																					"condition": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7305,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 7303,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7209,
																							"src": "32065:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "==",
																						"rightExpression": {
																							"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																							"id": 7304,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "32079:34:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																								"typeString": "int_const 1701...(31 digits omitted)...5728"
																							},
																							"value": "0x80000000000000000000000000000000"
																						},
																						"src": "32065:48:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"falseBody": {
																						"id": 7371,
																						"nodeType": "Block",
																						"src": "32336:387:22",
																						"statements": [
																							{
																								"assignments": [
																									7330
																								],
																								"declarations": [
																									{
																										"constant": false,
																										"id": 7330,
																										"mutability": "mutable",
																										"name": "bb",
																										"nameLocation": "32358:2:22",
																										"nodeType": "VariableDeclaration",
																										"scope": 7371,
																										"src": "32350:10:22",
																										"stateVariable": false,
																										"storageLocation": "default",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"typeName": {
																											"id": 7329,
																											"name": "uint256",
																											"nodeType": "ElementaryTypeName",
																											"src": "32350:7:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"visibility": "internal"
																									}
																								],
																								"id": 7335,
																								"initialValue": {
																									"condition": {
																										"id": 7331,
																										"name": "resultNegative",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7236,
																										"src": "32363:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bool",
																											"typeString": "bool"
																										}
																									},
																									"falseExpression": {
																										"hexValue": "30",
																										"id": 7333,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "32384:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_0_by_1",
																											"typeString": "int_const 0"
																										},
																										"value": "0"
																									},
																									"id": 7334,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"nodeType": "Conditional",
																									"src": "32363:22:22",
																									"trueExpression": {
																										"hexValue": "31",
																										"id": 7332,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "32380:1:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_1_by_1",
																											"typeString": "int_const 1"
																										},
																										"value": "1"
																									},
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint8",
																										"typeString": "uint8"
																									}
																								},
																								"nodeType": "VariableDeclarationStatement",
																								"src": "32350:35:22"
																							},
																							{
																								"body": {
																									"id": 7369,
																									"nodeType": "Block",
																									"src": "32457:254:22",
																									"statements": [
																										{
																											"expression": {
																												"id": 7341,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7339,
																													"name": "resultSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7243,
																													"src": "32473:15:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "<<=",
																												"rightHandSide": {
																													"hexValue": "31",
																													"id": 7340,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "32493:1:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_1_by_1",
																														"typeString": "int_const 1"
																													},
																													"value": "1"
																												},
																												"src": "32473:21:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7342,
																											"nodeType": "ExpressionStatement",
																											"src": "32473:21:22"
																										},
																										{
																											"expression": {
																												"id": 7345,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7343,
																													"name": "resultExponent",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7239,
																													"src": "32510:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "-=",
																												"rightHandSide": {
																													"hexValue": "31",
																													"id": 7344,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "32528:1:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_1_by_1",
																														"typeString": "int_const 1"
																													},
																													"value": "1"
																												},
																												"src": "32510:19:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7346,
																											"nodeType": "ExpressionStatement",
																											"src": "32510:19:22"
																										},
																										{
																											"expression": {
																												"id": 7349,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7347,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "32548:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "*=",
																												"rightHandSide": {
																													"id": 7348,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "32562:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "32548:24:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7350,
																											"nodeType": "ExpressionStatement",
																											"src": "32548:24:22"
																										},
																										{
																											"assignments": [
																												7352
																											],
																											"declarations": [
																												{
																													"constant": false,
																													"id": 7352,
																													"mutability": "mutable",
																													"name": "b",
																													"nameLocation": "32596:1:22",
																													"nodeType": "VariableDeclaration",
																													"scope": 7369,
																													"src": "32588:9:22",
																													"stateVariable": false,
																													"storageLocation": "default",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"typeName": {
																														"id": 7351,
																														"name": "uint256",
																														"nodeType": "ElementaryTypeName",
																														"src": "32588:7:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"visibility": "internal"
																												}
																											],
																											"id": 7356,
																											"initialValue": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 7355,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 7353,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "32600:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": ">>",
																												"rightExpression": {
																													"hexValue": "323535",
																													"id": 7354,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "32614:3:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_255_by_1",
																														"typeString": "int_const 255"
																													},
																													"value": "255"
																												},
																												"src": "32600:17:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "VariableDeclarationStatement",
																											"src": "32588:29:22"
																										},
																										{
																											"expression": {
																												"id": 7361,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7357,
																													"name": "resultSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7243,
																													"src": "32633:15:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": "+=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7360,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 7358,
																														"name": "b",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7352,
																														"src": "32652:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "^",
																													"rightExpression": {
																														"id": 7359,
																														"name": "bb",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7330,
																														"src": "32656:2:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "32652:6:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "32633:25:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7362,
																											"nodeType": "ExpressionStatement",
																											"src": "32633:25:22"
																										},
																										{
																											"expression": {
																												"id": 7367,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftHandSide": {
																													"id": 7363,
																													"name": "xSignifier",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7209,
																													"src": "32674:10:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "Assignment",
																												"operator": ">>=",
																												"rightHandSide": {
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 7366,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"hexValue": "313237",
																														"id": 7364,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "32689:3:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_127_by_1",
																															"typeString": "int_const 127"
																														},
																														"value": "127"
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "+",
																													"rightExpression": {
																														"id": 7365,
																														"name": "b",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 7352,
																														"src": "32695:1:22",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"src": "32689:7:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "32674:22:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"id": 7368,
																											"nodeType": "ExpressionStatement",
																											"src": "32674:22:22"
																										}
																									]
																								},
																								"condition": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7338,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 7336,
																										"name": "resultSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7243,
																										"src": "32406:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "<",
																									"rightExpression": {
																										"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																										"id": 7337,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "32424:31:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																											"typeString": "int_const 5192...(26 digits omitted)...0096"
																										},
																										"value": "0x10000000000000000000000000000"
																									},
																									"src": "32406:49:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 7370,
																								"nodeType": "WhileStatement",
																								"src": "32399:312:22"
																							}
																						]
																					},
																					"id": 7372,
																					"nodeType": "IfStatement",
																					"src": "32061:662:22",
																					"trueBody": {
																						"id": 7328,
																						"nodeType": "Block",
																						"src": "32115:215:22",
																						"statements": [
																							{
																								"condition": {
																									"id": 7306,
																									"name": "resultNegative",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7236,
																									"src": "32133:14:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_bool",
																										"typeString": "bool"
																									}
																								},
																								"id": 7311,
																								"nodeType": "IfStatement",
																								"src": "32129:40:22",
																								"trueBody": {
																									"expression": {
																										"id": 7309,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftHandSide": {
																											"id": 7307,
																											"name": "resultSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7243,
																											"src": "32149:15:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "Assignment",
																										"operator": "+=",
																										"rightHandSide": {
																											"hexValue": "31",
																											"id": 7308,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "32168:1:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_1_by_1",
																												"typeString": "int_const 1"
																											},
																											"value": "1"
																										},
																										"src": "32149:20:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"id": 7310,
																									"nodeType": "ExpressionStatement",
																									"src": "32149:20:22"
																								}
																							},
																							{
																								"assignments": [
																									7313
																								],
																								"declarations": [
																									{
																										"constant": false,
																										"id": 7313,
																										"mutability": "mutable",
																										"name": "shift",
																										"nameLocation": "32191:5:22",
																										"nodeType": "VariableDeclaration",
																										"scope": 7328,
																										"src": "32183:13:22",
																										"stateVariable": false,
																										"storageLocation": "default",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"typeName": {
																											"id": 7312,
																											"name": "uint256",
																											"nodeType": "ElementaryTypeName",
																											"src": "32183:7:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"visibility": "internal"
																									}
																								],
																								"id": 7319,
																								"initialValue": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 7318,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"hexValue": "313132",
																										"id": 7314,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "32199:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"arguments": [
																											{
																												"id": 7316,
																												"name": "resultSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 7243,
																												"src": "32225:15:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											}
																										],
																										"expression": {
																											"argumentTypes": [
																												{
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											],
																											"id": 7315,
																											"name": "mostSignificantBit",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 9523,
																											"src": "32205:18:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
																												"typeString": "function (uint256) pure returns (uint256)"
																											}
																										},
																										"id": 7317,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"kind": "functionCall",
																										"lValueRequested": false,
																										"nameLocations": [],
																										"names": [],
																										"nodeType": "FunctionCall",
																										"src": "32205:36:22",
																										"tryCall": false,
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "32199:42:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "VariableDeclarationStatement",
																								"src": "32183:58:22"
																							},
																							{
																								"expression": {
																									"id": 7322,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7320,
																										"name": "resultSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7243,
																										"src": "32255:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "<<=",
																									"rightHandSide": {
																										"id": 7321,
																										"name": "shift",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7313,
																										"src": "32275:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "32255:25:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 7323,
																								"nodeType": "ExpressionStatement",
																								"src": "32255:25:22"
																							},
																							{
																								"expression": {
																									"id": 7326,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftHandSide": {
																										"id": 7324,
																										"name": "resultExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7239,
																										"src": "32294:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "Assignment",
																									"operator": "-=",
																									"rightHandSide": {
																										"id": 7325,
																										"name": "shift",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7313,
																										"src": "32312:5:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "32294:23:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"id": 7327,
																								"nodeType": "ExpressionStatement",
																								"src": "32294:23:22"
																							}
																						]
																					}
																				},
																				{
																					"expression": {
																						"arguments": [
																							{
																								"arguments": [
																									{
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 7389,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 7385,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"components": [
																													{
																														"condition": {
																															"id": 7377,
																															"name": "resultNegative",
																															"nodeType": "Identifier",
																															"overloadedDeclarations": [],
																															"referencedDeclaration": 7236,
																															"src": "32761:14:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_bool",
																																"typeString": "bool"
																															}
																														},
																														"falseExpression": {
																															"hexValue": "30",
																															"id": 7379,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "32815:1:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_0_by_1",
																																"typeString": "int_const 0"
																															},
																															"value": "0"
																														},
																														"id": 7380,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": false,
																														"lValueRequested": false,
																														"nodeType": "Conditional",
																														"src": "32761:55:22",
																														"trueExpression": {
																															"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																															"id": 7378,
																															"isConstant": false,
																															"isLValue": false,
																															"isPure": true,
																															"kind": "number",
																															"lValueRequested": false,
																															"nodeType": "Literal",
																															"src": "32778:34:22",
																															"typeDescriptions": {
																																"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																																"typeString": "int_const 1701...(31 digits omitted)...5728"
																															},
																															"value": "0x80000000000000000000000000000000"
																														},
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint128",
																															"typeString": "uint128"
																														}
																													}
																												],
																												"id": 7381,
																												"isConstant": false,
																												"isInlineArray": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"nodeType": "TupleExpression",
																												"src": "32760:57:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint128",
																													"typeString": "uint128"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "|",
																											"rightExpression": {
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 7384,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 7382,
																													"name": "resultExponent",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 7239,
																													"src": "32834:14:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "<<",
																												"rightExpression": {
																													"hexValue": "313132",
																													"id": 7383,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": true,
																													"kind": "number",
																													"lValueRequested": false,
																													"nodeType": "Literal",
																													"src": "32852:3:22",
																													"typeDescriptions": {
																														"typeIdentifier": "t_rational_112_by_1",
																														"typeString": "int_const 112"
																													},
																													"value": "112"
																												},
																												"src": "32834:21:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "32760:95:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "|",
																										"rightExpression": {
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 7388,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 7386,
																												"name": "resultSignifier",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 7243,
																												"src": "32858:15:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "&",
																											"rightExpression": {
																												"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																												"id": 7387,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": true,
																												"kind": "number",
																												"lValueRequested": false,
																												"nodeType": "Literal",
																												"src": "32876:30:22",
																												"typeDescriptions": {
																													"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																													"typeString": "int_const 5192...(26 digits omitted)...0095"
																												},
																												"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																											},
																											"src": "32858:48:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "32760:146:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									],
																									"id": 7376,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "32751:7:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_uint128_$",
																										"typeString": "type(uint128)"
																									},
																									"typeName": {
																										"id": 7375,
																										"name": "uint128",
																										"nodeType": "ElementaryTypeName",
																										"src": "32751:7:22",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 7390,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "32751:156:22",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint128",
																									"typeString": "uint128"
																								}
																							],
																							"id": 7374,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "ElementaryTypeNameExpression",
																							"src": "32742:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_type$_t_bytes16_$",
																								"typeString": "type(bytes16)"
																							},
																							"typeName": {
																								"id": 7373,
																								"name": "bytes16",
																								"nodeType": "ElementaryTypeName",
																								"src": "32742:7:22",
																								"typeDescriptions": {}
																							}
																						},
																						"id": 7391,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "typeConversion",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "32742:166:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_bytes16",
																							"typeString": "bytes16"
																						}
																					},
																					"functionReturnParameters": 7178,
																					"id": 7392,
																					"nodeType": "Return",
																					"src": "32735:173:22"
																				}
																			]
																		},
																		"id": 7394,
																		"nodeType": "IfStatement",
																		"src": "31097:1822:22",
																		"trueBody": {
																			"expression": {
																				"id": 7206,
																				"name": "x",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 7174,
																				"src": "31129:1:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 7178,
																			"id": 7207,
																			"nodeType": "Return",
																			"src": "31122:8:22"
																		}
																	}
																]
															},
															"id": 7396,
															"nodeType": "IfStatement",
															"src": "30951:1976:22",
															"trueBody": {
																"expression": {
																	"id": 7190,
																	"name": "POSITIVE_ZERO",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4337,
																	"src": "31003:13:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"functionReturnParameters": 7178,
																"id": 7191,
																"nodeType": "Return",
																"src": "30996:20:22"
															}
														},
														"id": 7397,
														"nodeType": "IfStatement",
														"src": "30874:2053:22",
														"trueBody": {
															"expression": {
																"id": 7185,
																"name": "NaN",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4349,
																"src": "30935:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 7178,
															"id": 7186,
															"nodeType": "Return",
															"src": "30928:10:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 7172,
										"nodeType": "StructuredDocumentation",
										"src": "30615:173:22",
										"text": " Calculate binary logarithm of x.  Return NaN on negative x excluding -0.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 7400,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log_2",
									"nameLocation": "30800:5:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7175,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7174,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "30815:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 7400,
												"src": "30807:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7173,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "30807:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30806:11:22"
									},
									"returnParameters": {
										"id": 7178,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7177,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 7400,
												"src": "30841:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7176,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "30841:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30840:9:22"
									},
									"scope": 9524,
									"src": "30791:2146:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7416,
										"nodeType": "Block",
										"src": "33174:93:22",
										"statements": [
											{
												"id": 7415,
												"nodeType": "UncheckedBlock",
												"src": "33180:83:22",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 7410,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 7403,
																			"src": "33217:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 7409,
																		"name": "log_2",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7400,
																		"src": "33210:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_bytes16_$returns$_t_bytes16_$",
																			"typeString": "function (bytes16) pure returns (bytes16)"
																		}
																	},
																	"id": 7411,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "33210:9:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																{
																	"hexValue": "30783346464536324534324645464133394546333537393343373637333030374535",
																	"id": 7412,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33221:34:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_85062212891515258736905141183858083813_by_1",
																		"typeString": "int_const 8506...(30 digits omitted)...3813"
																	},
																	"value": "0x3FFE62E42FEFA39EF35793C7673007E5"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	},
																	{
																		"typeIdentifier": "t_rational_85062212891515258736905141183858083813_by_1",
																		"typeString": "int_const 8506...(30 digits omitted)...3813"
																	}
																],
																"id": 7408,
																"name": "mul",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 6536,
																"src": "33205:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_bytes16_$_t_bytes16_$returns$_t_bytes16_$",
																	"typeString": "function (bytes16,bytes16) pure returns (bytes16)"
																}
															},
															"id": 7413,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33205:51:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 7407,
														"id": 7414,
														"nodeType": "Return",
														"src": "33198:58:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 7401,
										"nodeType": "StructuredDocumentation",
										"src": "32941:174:22",
										"text": " Calculate natural logarithm of x.  Return NaN on negative x excluding -0.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 7417,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "ln",
									"nameLocation": "33127:2:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7404,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7403,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "33139:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 7417,
												"src": "33131:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7402,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "33131:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33130:11:22"
									},
									"returnParameters": {
										"id": 7407,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7406,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 7417,
												"src": "33165:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7405,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "33165:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33164:9:22"
									},
									"scope": 9524,
									"src": "33118:149:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9384,
										"nodeType": "Block",
										"src": "33448:18165:22",
										"statements": [
											{
												"id": 9383,
												"nodeType": "UncheckedBlock",
												"src": "33454:18155:22",
												"statements": [
													{
														"assignments": [
															7426
														],
														"declarations": [
															{
																"constant": false,
																"id": 7426,
																"mutability": "mutable",
																"name": "xNegative",
																"nameLocation": "33477:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 9383,
																"src": "33472:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"typeName": {
																	"id": 7425,
																	"name": "bool",
																	"nodeType": "ElementaryTypeName",
																	"src": "33472:4:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 7433,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 7432,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 7429,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7420,
																		"src": "33498:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 7428,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "33489:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 7427,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "33489:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 7430,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "33489:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																"id": 7431,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "33503:34:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																	"typeString": "int_const 1701...(31 digits omitted)...5728"
																},
																"value": "0x80000000000000000000000000000000"
															},
															"src": "33489:48:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "33472:65:22"
													},
													{
														"assignments": [
															7435
														],
														"declarations": [
															{
																"constant": false,
																"id": 7435,
																"mutability": "mutable",
																"name": "xExponent",
																"nameLocation": "33553:9:22",
																"nodeType": "VariableDeclaration",
																"scope": 9383,
																"src": "33545:17:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 7434,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "33545:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 7444,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 7443,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																},
																"id": 7441,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"arguments": [
																		{
																			"id": 7438,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 7420,
																			"src": "33574:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"id": 7437,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "33565:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint128_$",
																			"typeString": "type(uint128)"
																		},
																		"typeName": {
																			"id": 7436,
																			"name": "uint128",
																			"nodeType": "ElementaryTypeName",
																			"src": "33565:7:22",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 7439,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "33565:11:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint128",
																		"typeString": "uint128"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">>",
																"rightExpression": {
																	"hexValue": "313132",
																	"id": 7440,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33580:3:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_112_by_1",
																		"typeString": "int_const 112"
																	},
																	"value": "112"
																},
																"src": "33565:18:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307837464646",
																"id": 7442,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "33586:6:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_32767_by_1",
																	"typeString": "int_const 32767"
																},
																"value": "0x7FFF"
															},
															"src": "33565:27:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "33545:47:22"
													},
													{
														"assignments": [
															7446
														],
														"declarations": [
															{
																"constant": false,
																"id": 7446,
																"mutability": "mutable",
																"name": "xSignifier",
																"nameLocation": "33608:10:22",
																"nodeType": "VariableDeclaration",
																"scope": 9383,
																"src": "33600:18:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 7445,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "33600:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 7453,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															},
															"id": 7452,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 7449,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7420,
																		"src": "33630:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	],
																	"id": 7448,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "33621:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_uint128_$",
																		"typeString": "type(uint128)"
																	},
																	"typeName": {
																		"id": 7447,
																		"name": "uint128",
																		"nodeType": "ElementaryTypeName",
																		"src": "33621:7:22",
																		"typeDescriptions": {}
																	}
																},
																"id": 7450,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "33621:11:22",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint128",
																	"typeString": "uint128"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&",
															"rightExpression": {
																"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																"id": 7451,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "33635:30:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																	"typeString": "int_const 5192...(26 digits omitted)...0095"
																},
																"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
															},
															"src": "33621:44:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint128",
																"typeString": "uint128"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "33600:65:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"id": 7460,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 7456,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 7454,
																	"name": "xExponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7435,
																	"src": "33678:9:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"hexValue": "307837464646",
																	"id": 7455,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33691:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_32767_by_1",
																		"typeString": "int_const 32767"
																	},
																	"value": "0x7FFF"
																},
																"src": "33678:19:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "&&",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 7459,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 7457,
																	"name": "xSignifier",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7446,
																	"src": "33701:10:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "!=",
																"rightExpression": {
																	"hexValue": "30",
																	"id": 7458,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33715:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																"src": "33701:15:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"src": "33678:38:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"falseBody": {
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 7465,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 7463,
																	"name": "xExponent",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7435,
																	"src": "33745:9:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "3136333937",
																	"id": 7464,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33757:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_16397_by_1",
																		"typeString": "int_const 16397"
																	},
																	"value": "16397"
																},
																"src": "33745:17:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"condition": {
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 7473,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 7471,
																		"name": "xExponent",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7435,
																		"src": "33841:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "<",
																	"rightExpression": {
																		"hexValue": "3136323535",
																		"id": 7472,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "33853:5:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_16255_by_1",
																			"typeString": "int_const 16255"
																		},
																		"value": "16255"
																	},
																	"src": "33841:17:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseBody": {
																	"id": 9379,
																	"nodeType": "Block",
																	"src": "33922:17681:22",
																	"statements": [
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7478,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7476,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7435,
																					"src": "33936:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "==",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7477,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "33949:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "33936:14:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"expression": {
																					"id": 7485,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7483,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "33980:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "|=",
																					"rightHandSide": {
																						"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																						"id": 7484,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "33994:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																							"typeString": "int_const 5192...(26 digits omitted)...0096"
																						},
																						"value": "0x10000000000000000000000000000"
																					},
																					"src": "33980:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7486,
																				"nodeType": "ExpressionStatement",
																				"src": "33980:45:22"
																			},
																			"id": 7487,
																			"nodeType": "IfStatement",
																			"src": "33932:93:22",
																			"trueBody": {
																				"expression": {
																					"id": 7481,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7479,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7435,
																						"src": "33952:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"hexValue": "31",
																						"id": 7480,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "33964:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1_by_1",
																							"typeString": "int_const 1"
																						},
																						"value": "1"
																					},
																					"src": "33952:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7482,
																				"nodeType": "ExpressionStatement",
																				"src": "33952:13:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7490,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7488,
																					"name": "xExponent",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7435,
																					"src": "34040:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "3136333637",
																					"id": 7489,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "34052:5:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_16367_by_1",
																						"typeString": "int_const 16367"
																					},
																					"value": "16367"
																				},
																				"src": "34040:17:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7499,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7497,
																						"name": "xExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7435,
																						"src": "34120:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<",
																					"rightExpression": {
																						"hexValue": "3136333637",
																						"id": 7498,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34132:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16367_by_1",
																							"typeString": "int_const 16367"
																						},
																						"value": "16367"
																					},
																					"src": "34120:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"id": 7506,
																				"nodeType": "IfStatement",
																				"src": "34116:65:22",
																				"trueBody": {
																					"expression": {
																						"id": 7504,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 7500,
																							"name": "xSignifier",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7446,
																							"src": "34149:10:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": ">>=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7503,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"hexValue": "3136333637",
																								"id": 7501,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "34164:5:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_16367_by_1",
																									"typeString": "int_const 16367"
																								},
																								"value": "16367"
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "-",
																							"rightExpression": {
																								"id": 7502,
																								"name": "xExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7435,
																								"src": "34172:9:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "34164:17:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "34149:32:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 7505,
																					"nodeType": "ExpressionStatement",
																					"src": "34149:32:22"
																				}
																			},
																			"id": 7507,
																			"nodeType": "IfStatement",
																			"src": "34036:145:22",
																			"trueBody": {
																				"expression": {
																					"id": 7495,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7491,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34069:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "<<=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7494,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 7492,
																							"name": "xExponent",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 7435,
																							"src": "34084:9:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "-",
																						"rightExpression": {
																							"hexValue": "3136333637",
																							"id": 7493,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "34096:5:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_16367_by_1",
																								"typeString": "int_const 16367"
																							},
																							"value": "16367"
																						},
																						"src": "34084:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "34069:32:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7496,
																				"nodeType": "ExpressionStatement",
																				"src": "34069:32:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"id": 7512,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7508,
																					"name": "xNegative",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7426,
																					"src": "34196:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&&",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7511,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7509,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34209:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "3078343036453030303030303030303030303030303030303030303030303030303030303030",
																						"id": 7510,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34222:38:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5612617359993959016364900774979584879755264_by_1",
																							"typeString": "int_const 5612...(35 digits omitted)...5264"
																						},
																						"value": "0x406E00000000000000000000000000000000"
																					},
																					"src": "34209:51:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"src": "34196:64:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7515,
																			"nodeType": "IfStatement",
																			"src": "34192:100:22",
																			"trueBody": {
																				"expression": {
																					"id": 7513,
																					"name": "POSITIVE_ZERO",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4337,
																					"src": "34279:13:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 7424,
																				"id": 7514,
																				"nodeType": "Return",
																				"src": "34272:20:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"id": 7521,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7517,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "UnaryOperation",
																					"operator": "!",
																					"prefix": true,
																					"src": "34307:10:22",
																					"subExpression": {
																						"id": 7516,
																						"name": "xNegative",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7426,
																						"src": "34308:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&&",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7520,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7518,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34321:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": ">",
																					"rightExpression": {
																						"hexValue": "3078334646464646464646464646464646464646464646464646464646464646464646464646",
																						"id": 7519,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34334:38:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5575186299632655785383929568162090376495103_by_1",
																							"typeString": "int_const 5575...(35 digits omitted)...5103"
																						},
																						"value": "0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																					},
																					"src": "34321:51:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"src": "34307:65:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7524,
																			"nodeType": "IfStatement",
																			"src": "34303:105:22",
																			"trueBody": {
																				"expression": {
																					"id": 7522,
																					"name": "POSITIVE_INFINITY",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 4343,
																					"src": "34391:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes16",
																						"typeString": "bytes16"
																					}
																				},
																				"functionReturnParameters": 7424,
																				"id": 7523,
																				"nodeType": "Return",
																				"src": "34384:24:22"
																			}
																		},
																		{
																			"assignments": [
																				7526
																			],
																			"declarations": [
																				{
																					"constant": false,
																					"id": 7526,
																					"mutability": "mutable",
																					"name": "resultExponent",
																					"nameLocation": "34427:14:22",
																					"nodeType": "VariableDeclaration",
																					"scope": 9379,
																					"src": "34419:22:22",
																					"stateVariable": false,
																					"storageLocation": "default",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"typeName": {
																						"id": 7525,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "34419:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"visibility": "internal"
																				}
																			],
																			"id": 7530,
																			"initialValue": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7529,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7527,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7446,
																					"src": "34444:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">>",
																				"rightExpression": {
																					"hexValue": "313238",
																					"id": 7528,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "34458:3:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_128_by_1",
																						"typeString": "int_const 128"
																					},
																					"value": "128"
																				},
																				"src": "34444:17:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "VariableDeclarationStatement",
																			"src": "34419:42:22"
																		},
																		{
																			"expression": {
																				"id": 7533,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftHandSide": {
																					"id": 7531,
																					"name": "xSignifier",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7446,
																					"src": "34471:10:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "Assignment",
																				"operator": "&=",
																				"rightHandSide": {
																					"hexValue": "30784646464646464646464646464646464646464646464646464646464646464646",
																					"id": 7532,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "34485:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
																						"typeString": "int_const 3402...(31 digits omitted)...1455"
																					},
																					"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																				},
																				"src": "34471:48:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"id": 7534,
																			"nodeType": "ExpressionStatement",
																			"src": "34471:48:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"id": 7539,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 7535,
																					"name": "xNegative",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7426,
																					"src": "34533:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "&&",
																				"rightExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7538,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7536,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34546:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "!=",
																					"rightExpression": {
																						"hexValue": "30",
																						"id": 7537,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34560:1:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_0_by_1",
																							"typeString": "int_const 0"
																						},
																						"value": "0"
																					},
																					"src": "34546:15:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"src": "34533:28:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7550,
																			"nodeType": "IfStatement",
																			"src": "34529:112:22",
																			"trueBody": {
																				"id": 7549,
																				"nodeType": "Block",
																				"src": "34563:78:22",
																				"statements": [
																					{
																						"expression": {
																							"id": 7543,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 7540,
																								"name": "xSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7446,
																								"src": "34575:10:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"id": 7542,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"nodeType": "UnaryOperation",
																								"operator": "~",
																								"prefix": true,
																								"src": "34588:11:22",
																								"subExpression": {
																									"id": 7541,
																									"name": "xSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7446,
																									"src": "34589:10:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "34575:24:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 7544,
																						"nodeType": "ExpressionStatement",
																						"src": "34575:24:22"
																					},
																					{
																						"expression": {
																							"id": 7547,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 7545,
																								"name": "resultExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7526,
																								"src": "34611:14:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "+=",
																							"rightHandSide": {
																								"hexValue": "31",
																								"id": 7546,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "34629:1:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_1_by_1",
																									"typeString": "int_const 1"
																								},
																								"value": "1"
																							},
																							"src": "34611:19:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 7548,
																						"nodeType": "ExpressionStatement",
																						"src": "34611:19:22"
																					}
																				]
																			}
																		},
																		{
																			"assignments": [
																				7552
																			],
																			"declarations": [
																				{
																					"constant": false,
																					"id": 7552,
																					"mutability": "mutable",
																					"name": "resultSignifier",
																					"nameLocation": "34659:15:22",
																					"nodeType": "VariableDeclaration",
																					"scope": 9379,
																					"src": "34651:23:22",
																					"stateVariable": false,
																					"storageLocation": "default",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"typeName": {
																						"id": 7551,
																						"name": "uint256",
																						"nodeType": "ElementaryTypeName",
																						"src": "34651:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"visibility": "internal"
																				}
																			],
																			"id": 7554,
																			"initialValue": {
																				"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																				"id": 7553,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "34677:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																					"typeString": "int_const 1701...(31 digits omitted)...5728"
																				},
																				"value": "0x80000000000000000000000000000000"
																			},
																			"nodeType": "VariableDeclarationStatement",
																			"src": "34651:60:22"
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7559,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7557,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7555,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34725:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
																						"id": 7556,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34738:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
																							"typeString": "int_const 1701...(31 digits omitted)...5728"
																						},
																						"value": "0x80000000000000000000000000000000"
																					},
																					"src": "34725:47:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7558,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "34775:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "34725:51:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7568,
																			"nodeType": "IfStatement",
																			"src": "34721:135:22",
																			"trueBody": {
																				"expression": {
																					"id": 7566,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7560,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "34778:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7565,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7563,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7561,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "34796:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313641303945363637463342434339303842324642313336364541393537443345",
																								"id": 7562,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "34814:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_481231938336009023090067544955250113854_by_1",
																									"typeString": "int_const 4812...(31 digits omitted)...3854"
																								},
																								"value": "0x16A09E667F3BCC908B2FB1366EA957D3E"
																							},
																							"src": "34796:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7564,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "34853:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "34796:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "34778:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7567,
																				"nodeType": "ExpressionStatement",
																				"src": "34778:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7573,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7571,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7569,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "34870:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030303030303030303030303030303030",
																						"id": 7570,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "34883:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_85070591730234615865843651857942052864_by_1",
																							"typeString": "int_const 8507...(30 digits omitted)...2864"
																						},
																						"value": "0x40000000000000000000000000000000"
																					},
																					"src": "34870:47:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7572,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "34920:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "34870:51:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7582,
																			"nodeType": "IfStatement",
																			"src": "34866:135:22",
																			"trueBody": {
																				"expression": {
																					"id": 7580,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7574,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "34923:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7579,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7577,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7575,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "34941:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313330364645304133314237313532444538443541343633303543383545444543",
																								"id": 7576,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "34959:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_404666211852346594250993303657235475948_by_1",
																									"typeString": "int_const 4046...(31 digits omitted)...5948"
																								},
																								"value": "0x1306FE0A31B7152DE8D5A46305C85EDEC"
																							},
																							"src": "34941:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7578,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "34998:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "34941:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "34923:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7581,
																				"nodeType": "ExpressionStatement",
																				"src": "34923:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7587,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7585,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7583,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35015:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030303030303030303030303030303030",
																						"id": 7584,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35028:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_42535295865117307932921825928971026432_by_1",
																							"typeString": "int_const 4253...(30 digits omitted)...6432"
																						},
																						"value": "0x20000000000000000000000000000000"
																					},
																					"src": "35015:47:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7586,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35065:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35015:51:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7596,
																			"nodeType": "IfStatement",
																			"src": "35011:135:22",
																			"trueBody": {
																				"expression": {
																					"id": 7594,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7588,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35068:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7593,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7591,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7589,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35086:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313137324238334337443531374144434446374338433530454231344137393146",
																								"id": 7590,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35104:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_371080552416919877990254144423618836767_by_1",
																									"typeString": "int_const 3710...(31 digits omitted)...6767"
																								},
																								"value": "0x1172B83C7D517ADCDF7C8C50EB14A791F"
																							},
																							"src": "35086:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7592,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35143:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35086:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35068:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7595,
																				"nodeType": "ExpressionStatement",
																				"src": "35068:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7601,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7599,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7597,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35160:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030303030303030303030303030303030",
																						"id": 7598,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35173:34:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1",
																							"typeString": "int_const 2126...(30 digits omitted)...3216"
																						},
																						"value": "0x10000000000000000000000000000000"
																					},
																					"src": "35160:47:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7600,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35210:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35160:51:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7610,
																			"nodeType": "IfStatement",
																			"src": "35156:135:22",
																			"trueBody": {
																				"expression": {
																					"id": 7608,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7602,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35213:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7607,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7605,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7603,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35231:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313042353538364346393839304636323938423932423731383432413938333633",
																								"id": 7604,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35249:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_355347954397881497469693820312941593443_by_1",
																									"typeString": "int_const 3553...(31 digits omitted)...3443"
																								},
																								"value": "0x10B5586CF9890F6298B92B71842A98363"
																							},
																							"src": "35231:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7606,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35288:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35231:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35213:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7609,
																				"nodeType": "ExpressionStatement",
																				"src": "35213:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7615,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7613,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7611,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35305:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030303030303030303030303030303030",
																						"id": 7612,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35318:33:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_10633823966279326983230456482242756608_by_1",
																							"typeString": "int_const 1063...(30 digits omitted)...6608"
																						},
																						"value": "0x8000000000000000000000000000000"
																					},
																					"src": "35305:46:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7614,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35354:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35305:50:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7624,
																			"nodeType": "IfStatement",
																			"src": "35301:134:22",
																			"trueBody": {
																				"expression": {
																					"id": 7622,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7616,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35357:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7621,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7619,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7617,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35375:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313035394230443331353835373433414537433534384542363843413431374644",
																								"id": 7618,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35393:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_347733580493780928808815525413232318461_by_1",
																									"typeString": "int_const 3477...(31 digits omitted)...8461"
																								},
																								"value": "0x1059B0D31585743AE7C548EB68CA417FD"
																							},
																							"src": "35375:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7620,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35432:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35375:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35357:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7623,
																				"nodeType": "ExpressionStatement",
																				"src": "35357:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7629,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7627,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7625,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35449:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030303030303030303030303030303030",
																						"id": 7626,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35462:33:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5316911983139663491615228241121378304_by_1",
																							"typeString": "int_const 5316...(29 digits omitted)...8304"
																						},
																						"value": "0x4000000000000000000000000000000"
																					},
																					"src": "35449:46:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7628,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35498:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35449:50:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7638,
																			"nodeType": "IfStatement",
																			"src": "35445:134:22",
																			"trueBody": {
																				"expression": {
																					"id": 7636,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7630,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35501:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7635,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7633,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7631,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35519:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313032433941334537373830363045453646374341434134463741323942444538",
																								"id": 7632,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35537:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_343987798952690256687074238090730651112_by_1",
																									"typeString": "int_const 3439...(31 digits omitted)...1112"
																								},
																								"value": "0x102C9A3E778060EE6F7CACA4F7A29BDE8"
																							},
																							"src": "35519:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7634,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35576:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35519:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35501:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7637,
																				"nodeType": "ExpressionStatement",
																				"src": "35501:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7643,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7641,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7639,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35593:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030303030303030303030303030303030",
																						"id": 7640,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35606:33:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2658455991569831745807614120560689152_by_1",
																							"typeString": "int_const 2658...(29 digits omitted)...9152"
																						},
																						"value": "0x2000000000000000000000000000000"
																					},
																					"src": "35593:46:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7642,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35642:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35593:50:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7652,
																			"nodeType": "IfStatement",
																			"src": "35589:134:22",
																			"trueBody": {
																				"expression": {
																					"id": 7650,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7644,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35645:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7649,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7647,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7645,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35663:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313031363344413946423333333536443834413636414533333644434446413346",
																								"id": 7646,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35681:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_342130066523749645191881555545647086143_by_1",
																									"typeString": "int_const 3421...(31 digits omitted)...6143"
																								},
																								"value": "0x10163DA9FB33356D84A66AE336DCDFA3F"
																							},
																							"src": "35663:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7648,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35720:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35663:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35645:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7651,
																				"nodeType": "ExpressionStatement",
																				"src": "35645:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7657,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7655,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7653,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35737:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030303030303030303030303030303030",
																						"id": 7654,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35750:33:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1329227995784915872903807060280344576_by_1",
																							"typeString": "int_const 1329...(29 digits omitted)...4576"
																						},
																						"value": "0x1000000000000000000000000000000"
																					},
																					"src": "35737:46:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7656,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35786:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35737:50:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7666,
																			"nodeType": "IfStatement",
																			"src": "35733:134:22",
																			"trueBody": {
																				"expression": {
																					"id": 7664,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7658,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35789:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7663,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7661,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7659,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35807:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030423141464135414243424544363132394142313345433131444339353433",
																								"id": 7660,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35825:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_341204966012395051463589306197117539651_by_1",
																									"typeString": "int_const 3412...(31 digits omitted)...9651"
																								},
																								"value": "0x100B1AFA5ABCBED6129AB13EC11DC9543"
																							},
																							"src": "35807:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7662,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "35864:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35807:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35789:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7665,
																				"nodeType": "ExpressionStatement",
																				"src": "35789:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7671,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7669,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7667,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "35881:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030303030303030303030303030303030",
																						"id": 7668,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "35894:32:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_664613997892457936451903530140172288_by_1",
																							"typeString": "int_const 6646...(28 digits omitted)...2288"
																						},
																						"value": "0x800000000000000000000000000000"
																					},
																					"src": "35881:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7670,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "35929:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "35881:49:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7680,
																			"nodeType": "IfStatement",
																			"src": "35877:133:22",
																			"trueBody": {
																				"expression": {
																					"id": 7678,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7672,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "35932:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7677,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7675,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7673,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "35950:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030353843383644413143303945413146463139443239344346324636373942",
																								"id": 7674,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "35968:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340743354212339922144397487283364652955_by_1",
																									"typeString": "int_const 3407...(31 digits omitted)...2955"
																								},
																								"value": "0x10058C86DA1C09EA1FF19D294CF2F679B"
																							},
																							"src": "35950:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7676,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36007:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "35950:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "35932:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7679,
																				"nodeType": "ExpressionStatement",
																				"src": "35932:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7685,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7683,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7681,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36024:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030303030303030303030303030303030",
																						"id": 7682,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36037:32:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_332306998946228968225951765070086144_by_1",
																							"typeString": "int_const 3323...(28 digits omitted)...6144"
																						},
																						"value": "0x400000000000000000000000000000"
																					},
																					"src": "36024:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7684,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36072:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36024:49:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7694,
																			"nodeType": "IfStatement",
																			"src": "36020:133:22",
																			"trueBody": {
																				"expression": {
																					"id": 7692,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7686,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36075:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7691,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7689,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7687,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36093:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030324336303545324538434543353036443231424643383941323341303046",
																								"id": 7688,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36111:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340512782555889898808859563671008026639_by_1",
																									"typeString": "int_const 3405...(31 digits omitted)...6639"
																								},
																								"value": "0x1002C605E2E8CEC506D21BFC89A23A00F"
																							},
																							"src": "36093:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7690,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36150:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36093:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36075:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7693,
																				"nodeType": "ExpressionStatement",
																				"src": "36075:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7699,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7697,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7695,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36167:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030303030303030303030303030303030",
																						"id": 7696,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36180:32:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_166153499473114484112975882535043072_by_1",
																							"typeString": "int_const 1661...(28 digits omitted)...3072"
																						},
																						"value": "0x200000000000000000000000000000"
																					},
																					"src": "36167:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7698,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36215:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36167:49:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7708,
																			"nodeType": "IfStatement",
																			"src": "36163:133:22",
																			"trueBody": {
																				"expression": {
																					"id": 7706,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7700,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36218:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7705,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7703,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7701,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36236:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030313632463339303430353146413132384243413943353543333145354446",
																								"id": 7702,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36254:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340397555242326998647385072673097901535_by_1",
																									"typeString": "int_const 3403...(31 digits omitted)...1535"
																								},
																								"value": "0x100162F3904051FA128BCA9C55C31E5DF"
																							},
																							"src": "36236:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7704,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36293:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36236:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36218:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7707,
																				"nodeType": "ExpressionStatement",
																				"src": "36218:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7713,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7711,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7709,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36310:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030303030303030303030303030",
																						"id": 7710,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36323:32:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_83076749736557242056487941267521536_by_1",
																							"typeString": "int_const 8307...(27 digits omitted)...1536"
																						},
																						"value": "0x100000000000000000000000000000"
																					},
																					"src": "36310:45:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7712,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36358:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36310:49:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7722,
																			"nodeType": "IfStatement",
																			"src": "36306:133:22",
																			"trueBody": {
																				"expression": {
																					"id": 7720,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7714,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36361:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7719,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7717,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7715,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36379:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030304231373545464644433736424133384533313637314341393339373235",
																								"id": 7716,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36397:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340339956208435708755752659506489956133_by_1",
																									"typeString": "int_const 3403...(31 digits omitted)...6133"
																								},
																								"value": "0x1000B175EFFDC76BA38E31671CA939725"
																							},
																							"src": "36379:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7718,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36436:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36379:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36361:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7721,
																				"nodeType": "ExpressionStatement",
																				"src": "36361:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7727,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7725,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7723,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36453:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030303030",
																						"id": 7724,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36466:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_41538374868278621028243970633760768_by_1",
																							"typeString": "int_const 4153...(27 digits omitted)...0768"
																						},
																						"value": "0x80000000000000000000000000000"
																					},
																					"src": "36453:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7726,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36500:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36453:48:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7736,
																			"nodeType": "IfStatement",
																			"src": "36449:132:22",
																			"trueBody": {
																				"expression": {
																					"id": 7734,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7728,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36503:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7733,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7731,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7729,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36521:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303538424130314642394639364436434143443442313830393137433344",
																								"id": 7730,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36539:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340311160346490911934870813363085081661_by_1",
																									"typeString": "int_const 3403...(31 digits omitted)...1661"
																								},
																								"value": "0x100058BA01FB9F96D6CACD4B180917C3D"
																							},
																							"src": "36521:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7732,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36578:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36521:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36503:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7735,
																				"nodeType": "ExpressionStatement",
																				"src": "36503:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7741,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7739,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7737,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36595:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030303030303030303030303030",
																						"id": 7738,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36608:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_20769187434139310514121985316880384_by_1",
																							"typeString": "int_const 2076...(27 digits omitted)...0384"
																						},
																						"value": "0x40000000000000000000000000000"
																					},
																					"src": "36595:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7740,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36642:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36595:48:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7750,
																			"nodeType": "IfStatement",
																			"src": "36591:132:22",
																			"trueBody": {
																				"expression": {
																					"id": 7748,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7742,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36645:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7747,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7745,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7743,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36663:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303243354343333744413934393144303938354333343843363845374233",
																								"id": 7744,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36681:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340296763329178528376528243588334151603_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1603"
																								},
																								"value": "0x10002C5CC37DA9491D0985C348C68E7B3"
																							},
																							"src": "36663:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7746,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36720:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36663:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36645:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7749,
																				"nodeType": "ExpressionStatement",
																				"src": "36645:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7755,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7753,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7751,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36737:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030303030303030303030303030",
																						"id": 7752,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36750:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_10384593717069655257060992658440192_by_1",
																							"typeString": "int_const 1038...(27 digits omitted)...0192"
																						},
																						"value": "0x20000000000000000000000000000"
																					},
																					"src": "36737:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7754,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36784:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36737:48:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7764,
																			"nodeType": "IfStatement",
																			"src": "36733:132:22",
																			"trueBody": {
																				"expression": {
																					"id": 7762,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7756,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36787:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7761,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7759,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7757,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36805:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303136324535323545453035343735343435374435393935323932303236",
																								"id": 7758,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36823:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340289565048926066557319684044576333862_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3862"
																								},
																								"value": "0x1000162E525EE054754457D5995292026"
																							},
																							"src": "36805:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7760,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "36862:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36805:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36787:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7763,
																				"nodeType": "ExpressionStatement",
																				"src": "36787:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7769,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7767,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7765,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "36879:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030303030303030303030303030",
																						"id": 7766,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "36892:31:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
																							"typeString": "int_const 5192...(26 digits omitted)...0096"
																						},
																						"value": "0x10000000000000000000000000000"
																					},
																					"src": "36879:44:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7768,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "36926:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "36879:48:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7778,
																			"nodeType": "IfStatement",
																			"src": "36875:132:22",
																			"trueBody": {
																				"expression": {
																					"id": 7776,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7770,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "36929:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7775,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7773,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7771,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "36947:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303042313732353537373543303430363138424634413441444538334643",
																								"id": 7772,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "36965:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340285965965899358974465315064323671036_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1036"
																								},
																								"value": "0x10000B17255775C040618BF4A4ADE83FC"
																							},
																							"src": "36947:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7774,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37004:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "36947:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "36929:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7777,
																				"nodeType": "ExpressionStatement",
																				"src": "36929:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7783,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7781,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7779,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37021:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030303030303030303030303030",
																						"id": 7780,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37034:30:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2596148429267413814265248164610048_by_1",
																							"typeString": "int_const 2596...(26 digits omitted)...0048"
																						},
																						"value": "0x8000000000000000000000000000"
																					},
																					"src": "37021:43:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7782,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37067:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37021:47:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7792,
																			"nodeType": "IfStatement",
																			"src": "37017:131:22",
																			"trueBody": {
																				"expression": {
																					"id": 7790,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7784,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37070:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7789,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7787,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7785,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37088:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303035384239314235424339414532454544383145394237443443464142",
																								"id": 7786,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37106:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340284166438660709872813645066166128555_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8555"
																								},
																								"value": "0x1000058B91B5BC9AE2EED81E9B7D4CFAB"
																							},
																							"src": "37088:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7788,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37145:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37088:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37070:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7791,
																				"nodeType": "ExpressionStatement",
																				"src": "37070:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7797,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7795,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7793,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37162:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030303030303030303030303030",
																						"id": 7794,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37175:30:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1298074214633706907132624082305024_by_1",
																							"typeString": "int_const 1298...(26 digits omitted)...5024"
																						},
																						"value": "0x4000000000000000000000000000"
																					},
																					"src": "37162:43:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7796,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37208:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37162:47:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7806,
																			"nodeType": "IfStatement",
																			"src": "37158:131:22",
																			"trueBody": {
																				"expression": {
																					"id": 7804,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7798,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37211:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7803,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7801,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7799,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37229:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303032433543383944354543364341344437433841434330313742374339",
																								"id": 7800,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37247:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340283266678610039476911010529773336521_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6521"
																								},
																								"value": "0x100002C5C89D5EC6CA4D7C8ACC017B7C9"
																							},
																							"src": "37229:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7802,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37286:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37229:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37211:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7805,
																				"nodeType": "ExpressionStatement",
																				"src": "37211:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7811,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7809,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7807,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37303:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030303030303030303030303030",
																						"id": 7808,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37316:30:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_649037107316853453566312041152512_by_1",
																							"typeString": "int_const 6490...(25 digits omitted)...2512"
																						},
																						"value": "0x2000000000000000000000000000"
																					},
																					"src": "37303:43:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7810,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37349:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37303:47:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7820,
																			"nodeType": "IfStatement",
																			"src": "37299:131:22",
																			"trueBody": {
																				"expression": {
																					"id": 7818,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7812,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37352:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7817,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7815,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7813,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37370:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303031363245343346344638333130363045303244383339413944313644",
																								"id": 7814,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37388:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282816799476865065514053322893021549_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1549"
																								},
																								"value": "0x10000162E43F4F831060E02D839A9D16D"
																							},
																							"src": "37370:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7816,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37427:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37370:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37352:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7819,
																				"nodeType": "ExpressionStatement",
																				"src": "37352:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7825,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7823,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7821,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37444:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030303030303030303030303030",
																						"id": 7822,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37457:30:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_324518553658426726783156020576256_by_1",
																							"typeString": "int_const 3245...(25 digits omitted)...6256"
																						},
																						"value": "0x1000000000000000000000000000"
																					},
																					"src": "37444:43:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7824,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37490:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37444:47:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7834,
																			"nodeType": "IfStatement",
																			"src": "37440:131:22",
																			"trueBody": {
																				"expression": {
																					"id": 7832,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7826,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37493:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7831,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7829,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7827,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37511:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030423137323142434643393944394638393045413036393131373633",
																								"id": 7828,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37529:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282591860133317712432962519222523747_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3747"
																								},
																								"value": "0x100000B1721BCFC99D9F890EA06911763"
																							},
																							"src": "37511:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7830,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37568:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37511:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37493:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7833,
																				"nodeType": "ExpressionStatement",
																				"src": "37493:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7839,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7837,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7835,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37585:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030303030303030303030303030",
																						"id": 7836,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37598:29:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_162259276829213363391578010288128_by_1",
																							"typeString": "int_const 1622...(25 digits omitted)...8128"
																						},
																						"value": "0x800000000000000000000000000"
																					},
																					"src": "37585:42:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7838,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37630:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37585:46:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7848,
																			"nodeType": "IfStatement",
																			"src": "37581:130:22",
																			"trueBody": {
																				"expression": {
																					"id": 7846,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7840,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37633:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7845,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7843,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7841,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37651:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030353842393043463145364439374639434131344442434331363238",
																								"id": 7842,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37669:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282479390517303956044167089727739432_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9432"
																								},
																								"value": "0x10000058B90CF1E6D97F9CA14DBCC1628"
																							},
																							"src": "37651:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7844,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37708:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37651:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37633:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7847,
																				"nodeType": "ExpressionStatement",
																				"src": "37633:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7853,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7851,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7849,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37725:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030303030303030303030303030",
																						"id": 7850,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37738:29:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_81129638414606681695789005144064_by_1",
																							"typeString": "int_const 81129638414606681695789005144064"
																						},
																						"value": "0x400000000000000000000000000"
																					},
																					"src": "37725:42:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7852,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37770:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37725:46:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7862,
																			"nodeType": "IfStatement",
																			"src": "37721:130:22",
																			"trueBody": {
																				"expression": {
																					"id": 7860,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7854,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37773:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7859,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7857,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7855,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37791:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030324335433836334237334630313634363846364241433543413242",
																								"id": 7856,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37809:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282423155723237052512385577070742059_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2059"
																								},
																								"value": "0x1000002C5C863B73F016468F6BAC5CA2B"
																							},
																							"src": "37791:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7858,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37848:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37791:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37773:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7861,
																				"nodeType": "ExpressionStatement",
																				"src": "37773:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7867,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7865,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7863,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "37865:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030303030303030303030303030",
																						"id": 7864,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "37878:29:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_40564819207303340847894502572032_by_1",
																							"typeString": "int_const 40564819207303340847894502572032"
																						},
																						"value": "0x200000000000000000000000000"
																					},
																					"src": "37865:42:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7866,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "37910:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "37865:46:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7876,
																			"nodeType": "IfStatement",
																			"src": "37861:130:22",
																			"trueBody": {
																				"expression": {
																					"id": 7874,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7868,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "37913:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7873,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7871,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7869,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "37931:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030313632453433304535413138463631313945334330323238324135",
																								"id": 7870,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "37949:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282395038329688593740233918090740389_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0389"
																								},
																								"value": "0x100000162E430E5A18F6119E3C02282A5"
																							},
																							"src": "37931:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7872,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "37988:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "37931:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "37913:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7875,
																				"nodeType": "ExpressionStatement",
																				"src": "37913:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7881,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7879,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7877,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38005:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030303030303030303030",
																						"id": 7878,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38018:29:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_20282409603651670423947251286016_by_1",
																							"typeString": "int_const 20282409603651670423947251286016"
																						},
																						"value": "0x100000000000000000000000000"
																					},
																					"src": "38005:42:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7880,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38050:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38005:46:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7890,
																			"nodeType": "IfStatement",
																			"src": "38001:130:22",
																			"trueBody": {
																				"expression": {
																					"id": 7888,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7882,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38053:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7887,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7885,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7883,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38071:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030304231373231383335353134423836453644393645464431424645",
																								"id": 7884,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38089:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282380979633785612518603506803612670_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2670"
																								},
																								"value": "0x1000000B1721835514B86E6D96EFD1BFE"
																							},
																							"src": "38071:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7886,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38128:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38071:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38053:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7889,
																				"nodeType": "ExpressionStatement",
																				"src": "38053:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7895,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7893,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7891,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38145:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030303030",
																						"id": 7892,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38158:28:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_10141204801825835211973625643008_by_1",
																							"typeString": "int_const 10141204801825835211973625643008"
																						},
																						"value": "0x80000000000000000000000000"
																					},
																					"src": "38145:41:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7894,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38189:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38145:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7904,
																			"nodeType": "IfStatement",
																			"src": "38141:129:22",
																			"trueBody": {
																				"expression": {
																					"id": 7902,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7896,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38192:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7901,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7899,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7897,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38210:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303538423930433042343843364245354446383436433542324546",
																								"id": 7898,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38228:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282373950286051933938400987007267567_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7567"
																								},
																								"value": "0x100000058B90C0B48C6BE5DF846C5B2EF"
																							},
																							"src": "38210:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7900,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38267:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38210:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38192:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7903,
																				"nodeType": "ExpressionStatement",
																				"src": "38192:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7909,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7907,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7905,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38284:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030303030303030303030",
																						"id": 7906,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38297:28:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_5070602400912917605986812821504_by_1",
																							"typeString": "int_const 5070602400912917605986812821504"
																						},
																						"value": "0x40000000000000000000000000"
																					},
																					"src": "38284:41:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7908,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38328:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38284:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7918,
																			"nodeType": "IfStatement",
																			"src": "38280:129:22",
																			"trueBody": {
																				"expression": {
																					"id": 7916,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7910,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38331:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7915,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7913,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7911,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38349:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303243354338363031434336423945393432313343373237333741",
																								"id": 7912,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38367:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282370435612239547654640565033792378_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2378"
																								},
																								"value": "0x10000002C5C8601CC6B9E94213C72737A"
																							},
																							"src": "38349:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7914,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38406:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38349:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38331:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7917,
																				"nodeType": "ExpressionStatement",
																				"src": "38331:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7923,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7921,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7919,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38423:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030303030303030303030",
																						"id": 7920,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38436:28:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2535301200456458802993406410752_by_1",
																							"typeString": "int_const 2535301200456458802993406410752"
																						},
																						"value": "0x20000000000000000000000000"
																					},
																					"src": "38423:41:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7922,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38467:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38423:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7932,
																			"nodeType": "IfStatement",
																			"src": "38419:129:22",
																			"trueBody": {
																				"expression": {
																					"id": 7930,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7924,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38470:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7929,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7927,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7925,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38488:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303136324534324646463033374446333841413242323139463036",
																								"id": 7926,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38506:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282368678275346967764181521839267590_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7590"
																								},
																								"value": "0x1000000162E42FFF037DF38AA2B219F06"
																							},
																							"src": "38488:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7928,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38545:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38488:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38470:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7931,
																				"nodeType": "ExpressionStatement",
																				"src": "38470:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7937,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7935,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7933,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38562:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030303030303030303030",
																						"id": 7934,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38575:28:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1267650600228229401496703205376_by_1",
																							"typeString": "int_const 1267650600228229401496703205376"
																						},
																						"value": "0x10000000000000000000000000"
																					},
																					"src": "38562:41:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7936,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38606:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38562:45:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7946,
																			"nodeType": "IfStatement",
																			"src": "38558:129:22",
																			"trueBody": {
																				"expression": {
																					"id": 7944,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7938,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38609:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7943,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7941,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7939,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38627:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303042313732313746424139433733394141353831394634344639",
																								"id": 7940,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38645:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282367799606904081131786786979136761_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6761"
																								},
																								"value": "0x10000000B17217FBA9C739AA5819F44F9"
																							},
																							"src": "38627:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7942,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38684:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38627:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38609:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7945,
																				"nodeType": "ExpressionStatement",
																				"src": "38609:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7951,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7949,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7947,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38701:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030303030303030303030",
																						"id": 7948,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38714:27:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_633825300114114700748351602688_by_1",
																							"typeString": "int_const 633825300114114700748351602688"
																						},
																						"value": "0x8000000000000000000000000"
																					},
																					"src": "38701:40:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7950,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38744:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38701:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7960,
																			"nodeType": "IfStatement",
																			"src": "38697:128:22",
																			"trueBody": {
																				"expression": {
																					"id": 7958,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7952,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38747:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7957,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7955,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7953,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38765:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303035384239304246434445453541434433433143454443383233",
																								"id": 7954,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38783:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282367360272683488643795553082001443_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1443"
																								},
																								"value": "0x1000000058B90BFCDEE5ACD3C1CEDC823"
																							},
																							"src": "38765:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7956,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38822:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38765:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38747:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7959,
																				"nodeType": "ExpressionStatement",
																				"src": "38747:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7965,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7963,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7961,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38839:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030303030303030303030",
																						"id": 7962,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38852:27:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_316912650057057350374175801344_by_1",
																							"typeString": "int_const 316912650057057350374175801344"
																						},
																						"value": "0x4000000000000000000000000"
																					},
																					"src": "38839:40:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7964,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "38882:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38839:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7974,
																			"nodeType": "IfStatement",
																			"src": "38835:128:22",
																			"trueBody": {
																				"expression": {
																					"id": 7972,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7966,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "38885:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7971,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7969,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7967,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "38903:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303032433543383546453331463335413641333044413142453530",
																								"id": 7968,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "38921:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282367140605573405106851149122747984_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7984"
																								},
																								"value": "0x100000002C5C85FE31F35A6A30DA1BE50"
																							},
																							"src": "38903:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7970,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "38960:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "38903:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "38885:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7973,
																				"nodeType": "ExpressionStatement",
																				"src": "38885:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7979,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7977,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7975,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "38977:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030303030303030303030",
																						"id": 7976,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "38990:27:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_158456325028528675187087900672_by_1",
																							"typeString": "int_const 158456325028528675187087900672"
																						},
																						"value": "0x2000000000000000000000000"
																					},
																					"src": "38977:40:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7978,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39020:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "38977:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 7988,
																			"nodeType": "IfStatement",
																			"src": "38973:128:22",
																			"trueBody": {
																				"expression": {
																					"id": 7986,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7980,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39023:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7985,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7983,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7981,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39041:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303031363245343246463039393943453335343142394646464346",
																								"id": 7982,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39059:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282367030772018416515141710341210063_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0063"
																								},
																								"value": "0x10000000162E42FF0999CE3541B9FFFCF"
																							},
																							"src": "39041:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7984,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39098:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39041:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39023:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 7987,
																				"nodeType": "ExpressionStatement",
																				"src": "39023:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 7993,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 7991,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 7989,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39115:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030303030303030303030",
																						"id": 7990,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39128:27:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_79228162514264337593543950336_by_1",
																							"typeString": "int_const 79228162514264337593543950336"
																						},
																						"value": "0x1000000000000000000000000"
																					},
																					"src": "39115:40:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 7992,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39158:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39115:44:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8002,
																			"nodeType": "IfStatement",
																			"src": "39111:128:22",
																			"trueBody": {
																				"expression": {
																					"id": 8000,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 7994,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39161:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 7999,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 7997,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 7995,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39179:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030423137323137463830463445463541414444413435353534",
																								"id": 7996,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39197:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366975855240935513477676743808340_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8340"
																								},
																								"value": "0x100000000B17217F80F4EF5AADDA45554"
																							},
																							"src": "39179:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 7998,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39236:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39179:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39161:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8001,
																				"nodeType": "ExpressionStatement",
																				"src": "39161:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8007,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8005,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8003,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39253:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030303030303030303030",
																						"id": 8004,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39266:26:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_39614081257132168796771975168_by_1",
																							"typeString": "int_const 39614081257132168796771975168"
																						},
																						"value": "0x800000000000000000000000"
																					},
																					"src": "39253:39:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8006,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39295:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39253:43:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8016,
																			"nodeType": "IfStatement",
																			"src": "39249:127:22",
																			"trueBody": {
																				"expression": {
																					"id": 8014,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8008,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39298:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8013,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8011,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8009,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39316:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030353842393042464246383437394244354138314235314144",
																								"id": 8010,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39334:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366948396852198336193330767679917_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9917"
																								},
																								"value": "0x10000000058B90BFBF8479BD5A81B51AD"
																							},
																							"src": "39316:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8012,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39373:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39316:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39298:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8015,
																				"nodeType": "ExpressionStatement",
																				"src": "39298:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8021,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8019,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8017,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39390:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030303030303030303030",
																						"id": 8018,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39403:26:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_19807040628566084398385987584_by_1",
																							"typeString": "int_const 19807040628566084398385987584"
																						},
																						"value": "0x400000000000000000000000"
																					},
																					"src": "39390:39:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8020,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39432:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39390:43:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8030,
																			"nodeType": "IfStatement",
																			"src": "39386:127:22",
																			"trueBody": {
																				"expression": {
																					"id": 8028,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8022,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39435:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8027,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8025,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8023,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39453:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030324335433835464446383442443632414533304137344343",
																								"id": 8024,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39471:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366934667657830578438075407037644_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7644"
																								},
																								"value": "0x1000000002C5C85FDF84BD62AE30A74CC"
																							},
																							"src": "39453:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8026,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39510:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39453:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39435:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8029,
																				"nodeType": "ExpressionStatement",
																				"src": "39435:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8035,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8033,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8031,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39527:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030303030303030303030",
																						"id": 8032,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39540:26:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9903520314283042199192993792_by_1",
																							"typeString": "int_const 9903520314283042199192993792"
																						},
																						"value": "0x200000000000000000000000"
																					},
																					"src": "39527:39:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8034,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39569:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39527:43:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8044,
																			"nodeType": "IfStatement",
																			"src": "39523:127:22",
																			"trueBody": {
																				"expression": {
																					"id": 8042,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8036,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39572:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8041,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8039,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8037,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39590:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030313632453432464546423246454432353735353942444141",
																								"id": 8038,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39608:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366927803060646907282177123794346_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4346"
																								},
																								"value": "0x100000000162E42FEFB2FED257559BDAA"
																							},
																							"src": "39590:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8040,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39647:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39590:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39572:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8043,
																				"nodeType": "ExpressionStatement",
																				"src": "39572:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8049,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8047,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8045,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39664:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030303030303030",
																						"id": 8046,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39677:26:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4951760157141521099596496896_by_1",
																							"typeString": "int_const 4951760157141521099596496896"
																						},
																						"value": "0x100000000000000000000000"
																					},
																					"src": "39664:39:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8048,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39706:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39664:43:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8058,
																			"nodeType": "IfStatement",
																			"src": "39660:127:22",
																			"trueBody": {
																				"expression": {
																					"id": 8056,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8050,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39709:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8055,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8053,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8051,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39727:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030304231373231374637443541373731364242413441394145",
																								"id": 8052,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39745:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366924370762055123634660330219950_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9950"
																								},
																								"value": "0x1000000000B17217F7D5A7716BBA4A9AE"
																							},
																							"src": "39727:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8054,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39784:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39727:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39709:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8057,
																				"nodeType": "ExpressionStatement",
																				"src": "39709:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8063,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8061,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8059,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39801:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030303030",
																						"id": 8060,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39814:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2475880078570760549798248448_by_1",
																							"typeString": "int_const 2475880078570760549798248448"
																						},
																						"value": "0x80000000000000000000000"
																					},
																					"src": "39801:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8062,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39842:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39801:42:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8072,
																			"nodeType": "IfStatement",
																			"src": "39797:126:22",
																			"trueBody": {
																				"expression": {
																					"id": 8070,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8064,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39845:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8069,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8067,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8065,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39863:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303538423930424642453944444241433545313039434345",
																								"id": 8066,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "39881:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366922654612759244793510020291790_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1790"
																								},
																								"value": "0x100000000058B90BFBE9DDBAC5E109CCE"
																							},
																							"src": "39863:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8068,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "39920:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39863:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39845:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8071,
																				"nodeType": "ExpressionStatement",
																				"src": "39845:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8077,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8075,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8073,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "39937:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030303030303030",
																						"id": 8074,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "39950:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1237940039285380274899124224_by_1",
																							"typeString": "int_const 1237940039285380274899124224"
																						},
																						"value": "0x40000000000000000000000"
																					},
																					"src": "39937:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8076,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "39978:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "39937:42:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8086,
																			"nodeType": "IfStatement",
																			"src": "39933:126:22",
																			"trueBody": {
																				"expression": {
																					"id": 8084,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8078,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "39981:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8083,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8081,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8079,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "39999:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303243354338354644463442313544453646313745423044",
																								"id": 8080,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40017:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366921796538111308618586887023373_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3373"
																								},
																								"value": "0x10000000002C5C85FDF4B15DE6F17EB0D"
																							},
																							"src": "39999:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8082,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40056:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "39999:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "39981:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8085,
																				"nodeType": "ExpressionStatement",
																				"src": "39981:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8091,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8089,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8087,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40073:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030303030303030",
																						"id": 8088,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40086:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_618970019642690137449562112_by_1",
																							"typeString": "int_const 618970019642690137449562112"
																						},
																						"value": "0x20000000000000000000000"
																					},
																					"src": "40073:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8090,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40114:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40073:42:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8100,
																			"nodeType": "IfStatement",
																			"src": "40069:126:22",
																			"trueBody": {
																				"expression": {
																					"id": 8098,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8092,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40117:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8097,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8095,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8093,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40135:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303136324534324645464134393446313437384644453035",
																								"id": 8094,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40153:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366921367500787341342538325810693_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0693"
																								},
																								"value": "0x1000000000162E42FEFA494F1478FDE05"
																							},
																							"src": "40135:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8096,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40192:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40135:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40117:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8099,
																				"nodeType": "ExpressionStatement",
																				"src": "40117:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8105,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8103,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8101,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40209:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030303030303030",
																						"id": 8102,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40222:25:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_309485009821345068724781056_by_1",
																							"typeString": "int_const 309485009821345068724781056"
																						},
																						"value": "0x10000000000000000000000"
																					},
																					"src": "40209:38:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8104,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40250:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40209:42:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8114,
																			"nodeType": "IfStatement",
																			"src": "40205:126:22",
																			"trueBody": {
																				"expression": {
																					"id": 8112,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8106,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40253:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8111,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8109,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8107,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40271:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303042313732313746374432304346393237433845393443",
																								"id": 8108,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40289:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366921152982125357907367296559436_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9436"
																								},
																								"value": "0x10000000000B17217F7D20CF927C8E94C"
																							},
																							"src": "40271:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8110,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40328:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40271:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40253:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8113,
																				"nodeType": "ExpressionStatement",
																				"src": "40253:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8119,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8117,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8115,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40345:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030303030303030",
																						"id": 8116,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40358:24:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_154742504910672534362390528_by_1",
																							"typeString": "int_const 154742504910672534362390528"
																						},
																						"value": "0x8000000000000000000000"
																					},
																					"src": "40345:37:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8118,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40385:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40345:41:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8128,
																			"nodeType": "IfStatement",
																			"src": "40341:125:22",
																			"trueBody": {
																				"expression": {
																					"id": 8126,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8120,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40388:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8125,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8123,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8121,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40406:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303035384239304246424538463731434234453442333344",
																								"id": 8122,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40424:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366921045722794366240495094772541_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2541"
																								},
																								"value": "0x1000000000058B90BFBE8F71CB4E4B33D"
																							},
																							"src": "40406:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8124,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40463:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40406:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40388:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8127,
																				"nodeType": "ExpressionStatement",
																				"src": "40388:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8133,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8131,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8129,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40480:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030303030303030",
																						"id": 8130,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40493:24:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_77371252455336267181195264_by_1",
																							"typeString": "int_const 77371252455336267181195264"
																						},
																						"value": "0x4000000000000000000000"
																					},
																					"src": "40480:37:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8132,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40520:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40480:41:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8142,
																			"nodeType": "IfStatement",
																			"src": "40476:125:22",
																			"trueBody": {
																				"expression": {
																					"id": 8140,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8134,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40523:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8139,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8137,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8135,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40541:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303032433543383546444634373742363632423236393435",
																								"id": 8136,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40559:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920992093128870419737322088773_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8773"
																								},
																								"value": "0x100000000002C5C85FDF477B662B26945"
																							},
																							"src": "40541:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8138,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40598:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40541:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40523:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8141,
																				"nodeType": "ExpressionStatement",
																				"src": "40523:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8147,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8145,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8143,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40615:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030303030303030",
																						"id": 8144,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40628:24:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_38685626227668133590597632_by_1",
																							"typeString": "int_const 38685626227668133590597632"
																						},
																						"value": "0x2000000000000000000000"
																					},
																					"src": "40615:37:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8146,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40655:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40615:41:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8156,
																			"nodeType": "IfStatement",
																			"src": "40611:125:22",
																			"trueBody": {
																				"expression": {
																					"id": 8154,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8148,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40658:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8153,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8151,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8149,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40676:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303031363245343246454641334145353333363933383843",
																								"id": 8150,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40694:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920965278296122512528017799308_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9308"
																								},
																								"value": "0x10000000000162E42FEFA3AE53369388C"
																							},
																							"src": "40676:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8152,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40733:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40676:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40658:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8155,
																				"nodeType": "ExpressionStatement",
																				"src": "40658:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8161,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8159,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8157,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40750:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030303030303030",
																						"id": 8158,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40763:24:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_19342813113834066795298816_by_1",
																							"typeString": "int_const 19342813113834066795298816"
																						},
																						"value": "0x1000000000000000000000"
																					},
																					"src": "40750:37:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8160,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40790:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40750:41:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8170,
																			"nodeType": "IfStatement",
																			"src": "40746:125:22",
																			"trueBody": {
																				"expression": {
																					"id": 8168,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8162,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40793:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8167,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8165,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8163,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40811:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030423137323137463744314433353141333839443430",
																								"id": 8164,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40829:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920951870879748559715761167680_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7680"
																								},
																								"value": "0x100000000000B17217F7D1D351A389D40"
																							},
																							"src": "40811:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8166,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "40868:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40811:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40793:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8169,
																				"nodeType": "ExpressionStatement",
																				"src": "40793:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8175,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8173,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8171,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "40885:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030303030303030",
																						"id": 8172,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "40898:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9671406556917033397649408_by_1",
																							"typeString": "int_const 9671406556917033397649408"
																						},
																						"value": "0x800000000000000000000"
																					},
																					"src": "40885:36:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8174,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "40924:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "40885:40:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8184,
																			"nodeType": "IfStatement",
																			"src": "40881:124:22",
																			"trueBody": {
																				"expression": {
																					"id": 8182,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8176,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "40927:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8181,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8179,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8177,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "40945:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030353842393042464245384538423244334434454445",
																								"id": 8178,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "40963:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920945167171561583507731730142_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0142"
																								},
																								"value": "0x10000000000058B90BFBE8E8B2D3D4EDE"
																							},
																							"src": "40945:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8180,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41002:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "40945:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "40927:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8183,
																				"nodeType": "ExpressionStatement",
																				"src": "40927:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8189,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8187,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8185,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41019:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030303030303030",
																						"id": 8186,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41032:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4835703278458516698824704_by_1",
																							"typeString": "int_const 4835703278458516698824704"
																						},
																						"value": "0x400000000000000000000"
																					},
																					"src": "41019:36:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8188,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41058:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41019:40:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8198,
																			"nodeType": "IfStatement",
																			"src": "41015:124:22",
																			"trueBody": {
																				"expression": {
																					"id": 8196,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8190,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41061:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8195,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8193,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8191,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41079:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030324335433835464446343734314245413645373745",
																								"id": 8192,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41097:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920941815317468095453241730942_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0942"
																								},
																								"value": "0x1000000000002C5C85FDF4741BEA6E77E"
																							},
																							"src": "41079:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8194,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41136:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41079:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41061:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8197,
																				"nodeType": "ExpressionStatement",
																				"src": "41061:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8203,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8201,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8199,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41153:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030303030303030",
																						"id": 8200,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41166:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2417851639229258349412352_by_1",
																							"typeString": "int_const 2417851639229258349412352"
																						},
																						"value": "0x200000000000000000000"
																					},
																					"src": "41153:36:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8202,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41192:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41153:40:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8212,
																			"nodeType": "IfStatement",
																			"src": "41149:124:22",
																			"trueBody": {
																				"expression": {
																					"id": 8210,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8204,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41195:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8209,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8207,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8205,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41213:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030313632453432464546413339464539353538334332",
																								"id": 8206,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41231:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920940139390421351438377911234_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1234"
																								},
																								"value": "0x100000000000162E42FEFA39FE95583C2"
																							},
																							"src": "41213:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8208,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41270:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41213:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41195:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8211,
																				"nodeType": "ExpressionStatement",
																				"src": "41195:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8217,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8215,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8213,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41287:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030303030",
																						"id": 8214,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41300:23:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1208925819614629174706176_by_1",
																							"typeString": "int_const 1208925819614629174706176"
																						},
																						"value": "0x100000000000000000000"
																					},
																					"src": "41287:36:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8216,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41326:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41287:40:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8226,
																			"nodeType": "IfStatement",
																			"src": "41283:124:22",
																			"trueBody": {
																				"expression": {
																					"id": 8224,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8218,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41329:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8223,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8221,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8219,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41347:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030304231373231374637443143464237324234354531",
																								"id": 8220,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41365:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920939301426897979434041296353_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6353"
																								},
																								"value": "0x1000000000000B17217F7D1CFB72B45E1"
																							},
																							"src": "41347:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8222,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41404:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41347:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41329:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8225,
																				"nodeType": "ExpressionStatement",
																				"src": "41329:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8231,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8229,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8227,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41421:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030303030",
																						"id": 8228,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41434:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_604462909807314587353088_by_1",
																							"typeString": "int_const 604462909807314587353088"
																						},
																						"value": "0x80000000000000000000"
																					},
																					"src": "41421:35:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8230,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41459:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41421:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8240,
																			"nodeType": "IfStatement",
																			"src": "41417:123:22",
																			"trueBody": {
																				"expression": {
																					"id": 8238,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8232,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41462:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8237,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8235,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8233,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41480:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303538423930424642453845374343333543334630",
																								"id": 8234,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41498:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938882445136293432646812656_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2656"
																								},
																								"value": "0x100000000000058B90BFBE8E7CC35C3F0"
																							},
																							"src": "41480:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8236,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41537:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41480:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41462:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8239,
																				"nodeType": "ExpressionStatement",
																				"src": "41462:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8245,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8243,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8241,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41554:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030303030",
																						"id": 8242,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41567:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_302231454903657293676544_by_1",
																							"typeString": "int_const 302231454903657293676544"
																						},
																						"value": "0x40000000000000000000"
																					},
																					"src": "41554:35:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8244,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41592:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41554:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8254,
																			"nodeType": "IfStatement",
																			"src": "41550:123:22",
																			"trueBody": {
																				"expression": {
																					"id": 8252,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8246,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41595:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8251,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8249,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8247,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41613:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303243354338354644463437334532343245413338",
																								"id": 8248,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41631:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938672954255450432143026744_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6744"
																								},
																								"value": "0x10000000000002C5C85FDF473E242EA38"
																							},
																							"src": "41613:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8250,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41670:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41613:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41595:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8253,
																				"nodeType": "ExpressionStatement",
																				"src": "41595:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8259,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8257,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8255,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41687:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030303030",
																						"id": 8256,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41700:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_151115727451828646838272_by_1",
																							"typeString": "int_const 151115727451828646838272"
																						},
																						"value": "0x20000000000000000000"
																					},
																					"src": "41687:35:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8258,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41725:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41687:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8268,
																			"nodeType": "IfStatement",
																			"src": "41683:123:22",
																			"trueBody": {
																				"expression": {
																					"id": 8266,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8260,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41728:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8265,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8263,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8261,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41746:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303136324534324645464133394630324237373243",
																								"id": 8262,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41764:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938568208815028931939497772_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7772"
																								},
																								"value": "0x1000000000000162E42FEFA39F02B772C"
																							},
																							"src": "41746:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8264,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41803:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41746:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41728:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8267,
																				"nodeType": "ExpressionStatement",
																				"src": "41728:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8273,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8271,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8269,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41820:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030303030",
																						"id": 8270,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41833:22:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_75557863725914323419136_by_1",
																							"typeString": "int_const 75557863725914323419136"
																						},
																						"value": "0x10000000000000000000"
																					},
																					"src": "41820:35:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8272,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41858:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41820:39:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8282,
																			"nodeType": "IfStatement",
																			"src": "41816:123:22",
																			"trueBody": {
																				"expression": {
																					"id": 8280,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8274,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41861:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8279,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8277,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8275,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "41879:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303042313732313746374431434637443833433141",
																								"id": 8276,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "41897:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938515836094818181849824282_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4282"
																								},
																								"value": "0x10000000000000B17217F7D1CF7D83C1A"
																							},
																							"src": "41879:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8278,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "41936:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "41879:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41861:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8281,
																				"nodeType": "ExpressionStatement",
																				"src": "41861:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8287,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8285,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8283,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "41953:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030303030",
																						"id": 8284,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "41966:21:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_37778931862957161709568_by_1",
																							"typeString": "int_const 37778931862957161709568"
																						},
																						"value": "0x8000000000000000000"
																					},
																					"src": "41953:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8286,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "41990:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "41953:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8296,
																			"nodeType": "IfStatement",
																			"src": "41949:122:22",
																			"trueBody": {
																				"expression": {
																					"id": 8294,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8288,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "41993:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8293,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8291,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8289,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42011:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303035384239304246424538453742444342453245",
																								"id": 8290,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42029:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938489649734712806808010286_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0286"
																								},
																								"value": "0x1000000000000058B90BFBE8E7BDCBE2E"
																							},
																							"src": "42011:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8292,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42068:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42011:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "41993:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8295,
																				"nodeType": "ExpressionStatement",
																				"src": "41993:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8301,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8299,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8297,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42085:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030303030",
																						"id": 8298,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42098:21:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_18889465931478580854784_by_1",
																							"typeString": "int_const 18889465931478580854784"
																						},
																						"value": "0x4000000000000000000"
																					},
																					"src": "42085:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8300,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42122:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42085:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8310,
																			"nodeType": "IfStatement",
																			"src": "42081:122:22",
																			"trueBody": {
																				"expression": {
																					"id": 8308,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8302,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42125:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8307,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8305,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8303,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42143:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303032433543383546444634373344454138373146",
																								"id": 8304,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42161:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938476556554660119287858975_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8975"
																								},
																								"value": "0x100000000000002C5C85FDF473DEA871F"
																							},
																							"src": "42143:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8306,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42200:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42143:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42125:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8309,
																				"nodeType": "ExpressionStatement",
																				"src": "42125:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8315,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8313,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8311,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42217:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030303030",
																						"id": 8312,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42230:21:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9444732965739290427392_by_1",
																							"typeString": "int_const 9444732965739290427392"
																						},
																						"value": "0x2000000000000000000"
																					},
																					"src": "42217:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8314,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42254:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42217:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8324,
																			"nodeType": "IfStatement",
																			"src": "42213:122:22",
																			"trueBody": {
																				"expression": {
																					"id": 8322,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8316,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42257:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8321,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8319,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8317,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42275:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303031363245343246454641333945463434443931",
																								"id": 8318,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42293:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938470009964633775527972241_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2241"
																								},
																								"value": "0x10000000000000162E42FEFA39EF44D91"
																							},
																							"src": "42275:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8320,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42332:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42275:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42257:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8323,
																				"nodeType": "ExpressionStatement",
																				"src": "42257:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8329,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8327,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8325,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42349:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030303030",
																						"id": 8326,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42362:21:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4722366482869645213696_by_1",
																							"typeString": "int_const 4722366482869645213696"
																						},
																						"value": "0x1000000000000000000"
																					},
																					"src": "42349:34:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8328,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42386:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42349:38:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8338,
																			"nodeType": "IfStatement",
																			"src": "42345:122:22",
																			"trueBody": {
																				"expression": {
																					"id": 8336,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8330,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42389:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8335,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8333,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8331,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42407:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030423137323137463744314346373945393439",
																								"id": 8332,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42425:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938466736669620603648076105_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6105"
																								},
																								"value": "0x100000000000000B17217F7D1CF79E949"
																							},
																							"src": "42407:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8334,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42464:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42407:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42389:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8337,
																				"nodeType": "ExpressionStatement",
																				"src": "42389:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8343,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8341,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8339,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42481:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030303030",
																						"id": 8340,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42494:20:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2361183241434822606848_by_1",
																							"typeString": "int_const 2361183241434822606848"
																						},
																						"value": "0x800000000000000000"
																					},
																					"src": "42481:33:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8342,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42517:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42481:37:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8352,
																			"nodeType": "IfStatement",
																			"src": "42477:121:22",
																			"trueBody": {
																				"expression": {
																					"id": 8350,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8344,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42520:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8349,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8347,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8345,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42538:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030353842393042464245384537424345353434",
																								"id": 8346,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42556:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938465100022114017708139844_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9844"
																								},
																								"value": "0x10000000000000058B90BFBE8E7BCE544"
																							},
																							"src": "42538:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8348,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42595:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42538:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42520:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8351,
																				"nodeType": "ExpressionStatement",
																				"src": "42520:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8357,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8355,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8353,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42612:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030303030",
																						"id": 8354,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42625:20:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1180591620717411303424_by_1",
																							"typeString": "int_const 1180591620717411303424"
																						},
																						"value": "0x400000000000000000"
																					},
																					"src": "42612:33:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8356,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42648:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42612:37:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8366,
																			"nodeType": "IfStatement",
																			"src": "42608:121:22",
																			"trueBody": {
																				"expression": {
																					"id": 8364,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8358,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42651:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8363,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8361,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8359,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42669:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030324335433835464446343733444536454341",
																								"id": 8360,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42687:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938464281698360724738174666_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4666"
																								},
																								"value": "0x1000000000000002C5C85FDF473DE6ECA"
																							},
																							"src": "42669:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8362,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42726:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42669:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42651:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8365,
																				"nodeType": "ExpressionStatement",
																				"src": "42651:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8371,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8369,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8367,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42743:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030303030",
																						"id": 8368,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42756:20:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_590295810358705651712_by_1",
																							"typeString": "int_const 590295810358705651712"
																						},
																						"value": "0x200000000000000000"
																					},
																					"src": "42743:33:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8370,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42779:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42743:37:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8380,
																			"nodeType": "IfStatement",
																			"src": "42739:121:22",
																			"trueBody": {
																				"expression": {
																					"id": 8378,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8372,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42782:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8377,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8375,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8373,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42800:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030313632453432464546413339454633363646",
																								"id": 8374,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42818:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463872536484078253192815_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2815"
																								},
																								"value": "0x100000000000000162E42FEFA39EF366F"
																							},
																							"src": "42800:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8376,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42857:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42800:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42782:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8379,
																				"nodeType": "ExpressionStatement",
																				"src": "42782:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8385,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8383,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8381,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "42874:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030303030",
																						"id": 8382,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "42887:20:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_295147905179352825856_by_1",
																							"typeString": "int_const 295147905179352825856"
																						},
																						"value": "0x100000000000000000"
																					},
																					"src": "42874:33:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8384,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "42910:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "42874:37:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8394,
																			"nodeType": "IfStatement",
																			"src": "42870:121:22",
																			"trueBody": {
																				"expression": {
																					"id": 8392,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8386,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "42913:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8391,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8389,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8387,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "42931:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030304231373231374637443143463739414641",
																								"id": 8388,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "42949:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463667955545755010702074_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2074"
																								},
																								"value": "0x1000000000000000B17217F7D1CF79AFA"
																							},
																							"src": "42931:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8390,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "42988:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "42931:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "42913:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8393,
																				"nodeType": "ExpressionStatement",
																				"src": "42913:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8399,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8397,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8395,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43005:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030303030",
																						"id": 8396,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43018:19:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_147573952589676412928_by_1",
																							"typeString": "int_const 147573952589676412928"
																						},
																						"value": "0x80000000000000000"
																					},
																					"src": "43005:32:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8398,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43040:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43005:36:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8408,
																			"nodeType": "IfStatement",
																			"src": "43001:120:22",
																			"trueBody": {
																				"expression": {
																					"id": 8406,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8400,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43043:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8405,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8403,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8401,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43061:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303538423930424642453845374243443644",
																								"id": 8402,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43079:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463565665076593389456749_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6749"
																								},
																								"value": "0x100000000000000058B90BFBE8E7BCD6D"
																							},
																							"src": "43061:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8404,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43118:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43061:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43043:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8407,
																				"nodeType": "ExpressionStatement",
																				"src": "43043:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8413,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8411,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8409,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43135:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030303030",
																						"id": 8410,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43148:19:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_73786976294838206464_by_1",
																							"typeString": "int_const 73786976294838206464"
																						},
																						"value": "0x40000000000000000"
																					},
																					"src": "43135:32:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8412,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43170:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43135:36:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8422,
																			"nodeType": "IfStatement",
																			"src": "43131:120:22",
																			"trueBody": {
																				"expression": {
																					"id": 8420,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8414,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43173:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8419,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8417,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8415,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43191:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303243354338354644463437334445364232",
																								"id": 8416,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43209:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463514519842012578834098_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4098"
																								},
																								"value": "0x10000000000000002C5C85FDF473DE6B2"
																							},
																							"src": "43191:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8418,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43248:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43191:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43173:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8421,
																				"nodeType": "ExpressionStatement",
																				"src": "43173:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8427,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8425,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8423,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43265:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030303030",
																						"id": 8424,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43278:19:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_36893488147419103232_by_1",
																							"typeString": "int_const 36893488147419103232"
																						},
																						"value": "0x20000000000000000"
																					},
																					"src": "43265:32:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8426,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43300:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43265:36:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8436,
																			"nodeType": "IfStatement",
																			"src": "43261:120:22",
																			"trueBody": {
																				"expression": {
																					"id": 8434,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8428,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43303:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8433,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8431,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8429,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43321:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303136324534324645464133394546333538",
																								"id": 8430,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43339:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463488947224722173522776_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2776"
																								},
																								"value": "0x1000000000000000162E42FEFA39EF358"
																							},
																							"src": "43321:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8432,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43378:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43321:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43303:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8435,
																				"nodeType": "ExpressionStatement",
																				"src": "43303:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8441,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8439,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8437,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43395:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030303030",
																						"id": 8438,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43408:19:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_18446744073709551616_by_1",
																							"typeString": "int_const 18446744073709551616"
																						},
																						"value": "0x10000000000000000"
																					},
																					"src": "43395:32:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8440,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43430:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43395:36:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8450,
																			"nodeType": "IfStatement",
																			"src": "43391:120:22",
																			"trueBody": {
																				"expression": {
																					"id": 8448,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8442,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43433:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8447,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8445,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8443,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43451:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303042313732313746374431434637394142",
																								"id": 8444,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43469:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463476160916076970867115_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7115"
																								},
																								"value": "0x10000000000000000B17217F7D1CF79AB"
																							},
																							"src": "43451:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8446,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43508:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43451:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43433:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8449,
																				"nodeType": "ExpressionStatement",
																				"src": "43433:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8455,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8453,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8451,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43525:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030303030",
																						"id": 8452,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43538:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9223372036854775808_by_1",
																							"typeString": "int_const 9223372036854775808"
																						},
																						"value": "0x8000000000000000"
																					},
																					"src": "43525:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8454,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43559:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43525:35:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8464,
																			"nodeType": "IfStatement",
																			"src": "43521:119:22",
																			"trueBody": {
																				"expression": {
																					"id": 8462,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8456,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43562:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8461,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8459,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8457,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43580:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303035384239304246424538453742434435",
																								"id": 8458,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43598:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463469767761754369539285_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9285"
																								},
																								"value": "0x1000000000000000058B90BFBE8E7BCD5"
																							},
																							"src": "43580:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8460,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43637:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43580:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43562:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8463,
																				"nodeType": "ExpressionStatement",
																				"src": "43562:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8469,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8467,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8465,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43654:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030303030",
																						"id": 8466,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43667:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4611686018427387904_by_1",
																							"typeString": "int_const 4611686018427387904"
																						},
																						"value": "0x4000000000000000"
																					},
																					"src": "43654:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8468,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43688:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43654:35:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8478,
																			"nodeType": "IfStatement",
																			"src": "43650:119:22",
																			"trueBody": {
																				"expression": {
																					"id": 8476,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8470,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43691:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8475,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8473,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8471,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43709:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303032433543383546444634373344453641",
																								"id": 8472,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43727:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463466571184593068875370_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...5370"
																								},
																								"value": "0x100000000000000002C5C85FDF473DE6A"
																							},
																							"src": "43709:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8474,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43766:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43709:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43691:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8477,
																				"nodeType": "ExpressionStatement",
																				"src": "43691:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8483,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8481,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8479,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43783:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030303030",
																						"id": 8480,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43796:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2305843009213693952_by_1",
																							"typeString": "int_const 2305843009213693952"
																						},
																						"value": "0x2000000000000000"
																					},
																					"src": "43783:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8482,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43817:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43783:35:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8492,
																			"nodeType": "IfStatement",
																			"src": "43779:119:22",
																			"trueBody": {
																				"expression": {
																					"id": 8490,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8484,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43820:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8489,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8487,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8485,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43838:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303031363245343246454641333945463334",
																								"id": 8486,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43856:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463464972896012418543412_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3412"
																								},
																								"value": "0x10000000000000000162E42FEFA39EF34"
																							},
																							"src": "43838:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8488,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "43895:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43838:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43820:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8491,
																				"nodeType": "ExpressionStatement",
																				"src": "43820:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8497,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8495,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8493,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "43912:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030303030",
																						"id": 8494,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "43925:18:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1152921504606846976_by_1",
																							"typeString": "int_const 1152921504606846976"
																						},
																						"value": "0x1000000000000000"
																					},
																					"src": "43912:31:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8496,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "43946:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "43912:35:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8506,
																			"nodeType": "IfStatement",
																			"src": "43908:119:22",
																			"trueBody": {
																				"expression": {
																					"id": 8504,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8498,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "43949:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8503,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8501,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8499,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "43967:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030423137323137463744314346373939",
																								"id": 8500,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "43985:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463464173751722093377433_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7433"
																								},
																								"value": "0x100000000000000000B17217F7D1CF799"
																							},
																							"src": "43967:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8502,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44024:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "43967:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "43949:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8505,
																				"nodeType": "ExpressionStatement",
																				"src": "43949:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8511,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8509,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8507,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44041:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030303030",
																						"id": 8508,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44054:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_576460752303423488_by_1",
																							"typeString": "int_const 576460752303423488"
																						},
																						"value": "0x800000000000000"
																					},
																					"src": "44041:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8510,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44074:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44041:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8520,
																			"nodeType": "IfStatement",
																			"src": "44037:118:22",
																			"trueBody": {
																				"expression": {
																					"id": 8518,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8512,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44077:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8517,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8515,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8513,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44095:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030353842393042464245384537424343",
																								"id": 8514,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44113:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463774179576930794444_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4444"
																								},
																								"value": "0x10000000000000000058B90BFBE8E7BCC"
																							},
																							"src": "44095:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8516,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44152:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44095:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44077:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8519,
																				"nodeType": "ExpressionStatement",
																				"src": "44077:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8525,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8523,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8521,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44169:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030303030",
																						"id": 8522,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44182:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_288230376151711744_by_1",
																							"typeString": "int_const 288230376151711744"
																						},
																						"value": "0x400000000000000"
																					},
																					"src": "44169:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8524,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44202:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44169:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8534,
																			"nodeType": "IfStatement",
																			"src": "44165:118:22",
																			"trueBody": {
																				"expression": {
																					"id": 8532,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8526,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44205:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8531,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8529,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8527,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44223:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030324335433835464446343733444535",
																								"id": 8528,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44241:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463574393504349502949_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2949"
																								},
																								"value": "0x1000000000000000002C5C85FDF473DE5"
																							},
																							"src": "44223:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8530,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44280:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44223:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44205:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8533,
																				"nodeType": "ExpressionStatement",
																				"src": "44205:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8539,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8537,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8535,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44297:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030303030",
																						"id": 8536,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44310:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_144115188075855872_by_1",
																							"typeString": "int_const 144115188075855872"
																						},
																						"value": "0x200000000000000"
																					},
																					"src": "44297:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8538,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44330:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44297:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8548,
																			"nodeType": "IfStatement",
																			"src": "44293:118:22",
																			"trueBody": {
																				"expression": {
																					"id": 8546,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8540,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44333:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8545,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8543,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8541,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44351:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030313632453432464546413339454632",
																								"id": 8542,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44369:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463474500468058857202_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7202"
																								},
																								"value": "0x100000000000000000162E42FEFA39EF2"
																							},
																							"src": "44351:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8544,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44408:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44351:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44333:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8547,
																				"nodeType": "ExpressionStatement",
																				"src": "44333:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8553,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8551,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8549,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44425:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030303030",
																						"id": 8550,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44438:17:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_72057594037927936_by_1",
																							"typeString": "int_const 72057594037927936"
																						},
																						"value": "0x100000000000000"
																					},
																					"src": "44425:30:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8552,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44458:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44425:34:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8562,
																			"nodeType": "IfStatement",
																			"src": "44421:118:22",
																			"trueBody": {
																				"expression": {
																					"id": 8560,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8554,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44461:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8559,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8557,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8555,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44479:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030304231373231374637443143463738",
																								"id": 8556,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44497:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463424553949913534328_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4328"
																								},
																								"value": "0x1000000000000000000B17217F7D1CF78"
																							},
																							"src": "44479:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8558,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44536:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44479:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44461:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8561,
																				"nodeType": "ExpressionStatement",
																				"src": "44461:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8567,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8565,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8563,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44553:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030303030",
																						"id": 8564,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44566:16:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_36028797018963968_by_1",
																							"typeString": "int_const 36028797018963968"
																						},
																						"value": "0x80000000000000"
																					},
																					"src": "44553:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8566,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44585:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44553:33:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8576,
																			"nodeType": "IfStatement",
																			"src": "44549:117:22",
																			"trueBody": {
																				"expression": {
																					"id": 8574,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8568,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44588:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8573,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8571,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8569,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44606:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303538423930424642453845374242",
																								"id": 8570,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44624:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463399580690840872891_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2891"
																								},
																								"value": "0x100000000000000000058B90BFBE8E7BB"
																							},
																							"src": "44606:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8572,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44663:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44606:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44588:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8575,
																				"nodeType": "ExpressionStatement",
																				"src": "44588:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8581,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8579,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8577,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44680:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030303030",
																						"id": 8578,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44693:16:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_18014398509481984_by_1",
																							"typeString": "int_const 18014398509481984"
																						},
																						"value": "0x40000000000000"
																					},
																					"src": "44680:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8580,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44712:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44680:33:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8590,
																			"nodeType": "IfStatement",
																			"src": "44676:117:22",
																			"trueBody": {
																				"expression": {
																					"id": 8588,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8582,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44715:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8587,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8585,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8583,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44733:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303243354338354644463437334444",
																								"id": 8584,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44751:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463387094061304542173_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2173"
																								},
																								"value": "0x10000000000000000002C5C85FDF473DD"
																							},
																							"src": "44733:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8586,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44790:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44733:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44715:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8589,
																				"nodeType": "ExpressionStatement",
																				"src": "44715:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8595,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8593,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8591,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44807:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030303030",
																						"id": 8592,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44820:16:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_9007199254740992_by_1",
																							"typeString": "int_const 9007199254740992"
																						},
																						"value": "0x20000000000000"
																					},
																					"src": "44807:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8594,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44839:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44807:33:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8604,
																			"nodeType": "IfStatement",
																			"src": "44803:117:22",
																			"trueBody": {
																				"expression": {
																					"id": 8602,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8596,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44842:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8601,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8599,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8597,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44860:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303136324534324645464133394545",
																								"id": 8598,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "44878:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463380850746536376814_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6814"
																								},
																								"value": "0x1000000000000000000162E42FEFA39EE"
																							},
																							"src": "44860:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8600,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "44917:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44860:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44842:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8603,
																				"nodeType": "ExpressionStatement",
																				"src": "44842:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8609,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8607,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8605,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "44934:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030303030",
																						"id": 8606,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "44947:16:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4503599627370496_by_1",
																							"typeString": "int_const 4503599627370496"
																						},
																						"value": "0x10000000000000"
																					},
																					"src": "44934:29:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8608,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "44966:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "44934:33:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8618,
																			"nodeType": "IfStatement",
																			"src": "44930:117:22",
																			"trueBody": {
																				"expression": {
																					"id": 8616,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8610,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "44969:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8615,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8613,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8611,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "44987:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303042313732313746374431434636",
																								"id": 8612,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45005:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463377729089152294134_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4134"
																								},
																								"value": "0x10000000000000000000B17217F7D1CF6"
																							},
																							"src": "44987:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8614,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45044:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "44987:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "44969:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8617,
																				"nodeType": "ExpressionStatement",
																				"src": "44969:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8623,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8621,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8619,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45061:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030303030",
																						"id": 8620,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45074:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2251799813685248_by_1",
																							"typeString": "int_const 2251799813685248"
																						},
																						"value": "0x8000000000000"
																					},
																					"src": "45061:28:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8622,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45092:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45061:32:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8632,
																			"nodeType": "IfStatement",
																			"src": "45057:116:22",
																			"trueBody": {
																				"expression": {
																					"id": 8630,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8624,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45095:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8629,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8627,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8625,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45113:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303035384239304246424538453741",
																								"id": 8626,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45131:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463376168260460252794_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2794"
																								},
																								"value": "0x1000000000000000000058B90BFBE8E7A"
																							},
																							"src": "45113:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8628,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45170:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45113:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45095:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8631,
																				"nodeType": "ExpressionStatement",
																				"src": "45095:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8637,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8635,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8633,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45187:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030303030",
																						"id": 8634,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45200:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1125899906842624_by_1",
																							"typeString": "int_const 1125899906842624"
																						},
																						"value": "0x4000000000000"
																					},
																					"src": "45187:28:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8636,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45218:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45187:32:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8646,
																			"nodeType": "IfStatement",
																			"src": "45183:116:22",
																			"trueBody": {
																				"expression": {
																					"id": 8644,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8638,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45221:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8643,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8641,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8639,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45239:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303032433543383546444634373343",
																								"id": 8640,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45257:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463375387846114232124_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2124"
																								},
																								"value": "0x100000000000000000002C5C85FDF473C"
																							},
																							"src": "45239:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8642,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45296:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45239:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45221:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8645,
																				"nodeType": "ExpressionStatement",
																				"src": "45221:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8651,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8649,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8647,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45313:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030303030",
																						"id": 8648,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45326:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_562949953421312_by_1",
																							"typeString": "int_const 562949953421312"
																						},
																						"value": "0x2000000000000"
																					},
																					"src": "45313:28:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8650,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45344:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45313:32:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8660,
																			"nodeType": "IfStatement",
																			"src": "45309:116:22",
																			"trueBody": {
																				"expression": {
																					"id": 8658,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8652,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45347:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8657,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8655,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8653,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45365:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303031363245343246454641333944",
																								"id": 8654,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45383:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374997638941221789_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1789"
																								},
																								"value": "0x10000000000000000000162E42FEFA39D"
																							},
																							"src": "45365:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8656,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45422:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45365:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45347:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8659,
																				"nodeType": "ExpressionStatement",
																				"src": "45347:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8665,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8663,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8661,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45439:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030303030",
																						"id": 8662,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45452:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_281474976710656_by_1",
																							"typeString": "int_const 281474976710656"
																						},
																						"value": "0x1000000000000"
																					},
																					"src": "45439:28:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8664,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45470:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45439:32:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8674,
																			"nodeType": "IfStatement",
																			"src": "45435:116:22",
																			"trueBody": {
																				"expression": {
																					"id": 8672,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8666,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45473:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8671,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8669,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8667,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45491:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030423137323137463744314345",
																								"id": 8668,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45509:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374802535354716622_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6622"
																								},
																								"value": "0x100000000000000000000B17217F7D1CE"
																							},
																							"src": "45491:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8670,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45548:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45491:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45473:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8673,
																				"nodeType": "ExpressionStatement",
																				"src": "45473:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8679,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8677,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8675,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45565:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030303030",
																						"id": 8676,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45578:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_140737488355328_by_1",
																							"typeString": "int_const 140737488355328"
																						},
																						"value": "0x800000000000"
																					},
																					"src": "45565:27:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8678,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45595:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45565:31:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8688,
																			"nodeType": "IfStatement",
																			"src": "45561:115:22",
																			"trueBody": {
																				"expression": {
																					"id": 8686,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8680,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45598:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8685,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8683,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8681,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45616:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030353842393042464245384536",
																								"id": 8682,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45634:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374704983561464038_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4038"
																								},
																								"value": "0x10000000000000000000058B90BFBE8E6"
																							},
																							"src": "45616:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8684,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45673:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45616:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45598:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8687,
																				"nodeType": "ExpressionStatement",
																				"src": "45598:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8693,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8691,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8689,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45690:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030303030",
																						"id": 8690,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45703:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_70368744177664_by_1",
																							"typeString": "int_const 70368744177664"
																						},
																						"value": "0x400000000000"
																					},
																					"src": "45690:27:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8692,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45720:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45690:31:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8702,
																			"nodeType": "IfStatement",
																			"src": "45686:115:22",
																			"trueBody": {
																				"expression": {
																					"id": 8700,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8694,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45723:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8699,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8697,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8695,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45741:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030324335433835464446343732",
																								"id": 8696,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45759:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374656207664837746_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7746"
																								},
																								"value": "0x1000000000000000000002C5C85FDF472"
																							},
																							"src": "45741:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8698,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45798:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45741:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45723:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8701,
																				"nodeType": "ExpressionStatement",
																				"src": "45723:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8707,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8705,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8703,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45815:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030303030",
																						"id": 8704,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45828:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_35184372088832_by_1",
																							"typeString": "int_const 35184372088832"
																						},
																						"value": "0x200000000000"
																					},
																					"src": "45815:27:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8706,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45845:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45815:31:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8716,
																			"nodeType": "IfStatement",
																			"src": "45811:115:22",
																			"trueBody": {
																				"expression": {
																					"id": 8714,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8708,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45848:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8713,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8711,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8709,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45866:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030313632453432464546413338",
																								"id": 8710,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "45884:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374631819716524600_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4600"
																								},
																								"value": "0x100000000000000000000162E42FEFA38"
																							},
																							"src": "45866:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8712,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "45923:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45866:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45848:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8715,
																				"nodeType": "ExpressionStatement",
																				"src": "45848:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8721,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8719,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8717,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "45940:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030303030",
																						"id": 8718,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "45953:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_17592186044416_by_1",
																							"typeString": "int_const 17592186044416"
																						},
																						"value": "0x100000000000"
																					},
																					"src": "45940:27:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8720,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "45970:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "45940:31:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8730,
																			"nodeType": "IfStatement",
																			"src": "45936:115:22",
																			"trueBody": {
																				"expression": {
																					"id": 8728,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8722,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "45973:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8727,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8725,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8723,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "45991:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030304231373231374637443142",
																								"id": 8724,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46009:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374619625742368027_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8027"
																								},
																								"value": "0x1000000000000000000000B17217F7D1B"
																							},
																							"src": "45991:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8726,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46048:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "45991:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "45973:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8729,
																				"nodeType": "ExpressionStatement",
																				"src": "45973:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8735,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8733,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8731,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46065:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030303030",
																						"id": 8732,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46078:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_8796093022208_by_1",
																							"typeString": "int_const 8796093022208"
																						},
																						"value": "0x80000000000"
																					},
																					"src": "46065:26:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8734,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46094:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46065:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8744,
																			"nodeType": "IfStatement",
																			"src": "46061:114:22",
																			"trueBody": {
																				"expression": {
																					"id": 8742,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8736,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46097:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8741,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8739,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8737,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46115:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303538423930424642453844",
																								"id": 8738,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46133:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374613528755289741_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9741"
																								},
																								"value": "0x100000000000000000000058B90BFBE8D"
																							},
																							"src": "46115:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8740,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46172:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46115:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46097:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8743,
																				"nodeType": "ExpressionStatement",
																				"src": "46097:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8749,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8747,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8745,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46189:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030303030",
																						"id": 8746,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46202:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4398046511104_by_1",
																							"typeString": "int_const 4398046511104"
																						},
																						"value": "0x40000000000"
																					},
																					"src": "46189:26:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8748,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46218:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46189:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8758,
																			"nodeType": "IfStatement",
																			"src": "46185:114:22",
																			"trueBody": {
																				"expression": {
																					"id": 8756,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8750,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46221:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8755,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8753,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8751,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46239:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303243354338354644463436",
																								"id": 8752,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46257:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374610480261750598_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0598"
																								},
																								"value": "0x10000000000000000000002C5C85FDF46"
																							},
																							"src": "46239:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8754,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46296:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46239:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46221:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8757,
																				"nodeType": "ExpressionStatement",
																				"src": "46221:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8763,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8761,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8759,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46313:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030303030",
																						"id": 8760,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46326:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2199023255552_by_1",
																							"typeString": "int_const 2199023255552"
																						},
																						"value": "0x20000000000"
																					},
																					"src": "46313:26:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8762,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46342:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46313:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8772,
																			"nodeType": "IfStatement",
																			"src": "46309:114:22",
																			"trueBody": {
																				"expression": {
																					"id": 8770,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8764,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46345:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8769,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8767,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8765,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46363:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303136324534324645464132",
																								"id": 8766,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46381:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374608956014981026_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1026"
																								},
																								"value": "0x1000000000000000000000162E42FEFA2"
																							},
																							"src": "46363:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8768,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46420:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46363:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46345:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8771,
																				"nodeType": "ExpressionStatement",
																				"src": "46345:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8777,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8775,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8773,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46437:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030303030",
																						"id": 8774,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46450:13:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1099511627776_by_1",
																							"typeString": "int_const 1099511627776"
																						},
																						"value": "0x10000000000"
																					},
																					"src": "46437:26:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8776,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46466:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46437:30:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8786,
																			"nodeType": "IfStatement",
																			"src": "46433:114:22",
																			"trueBody": {
																				"expression": {
																					"id": 8784,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8778,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46469:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8783,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8781,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8779,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46487:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303042313732313746374430",
																								"id": 8780,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46505:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374608193891596240_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6240"
																								},
																								"value": "0x10000000000000000000000B17217F7D0"
																							},
																							"src": "46487:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8782,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46544:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46487:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46469:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8785,
																				"nodeType": "ExpressionStatement",
																				"src": "46469:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8791,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8789,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8787,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46561:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030303030",
																						"id": 8788,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46574:12:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_549755813888_by_1",
																							"typeString": "int_const 549755813888"
																						},
																						"value": "0x8000000000"
																					},
																					"src": "46561:25:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8790,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46589:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46561:29:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8800,
																			"nodeType": "IfStatement",
																			"src": "46557:113:22",
																			"trueBody": {
																				"expression": {
																					"id": 8798,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8792,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46592:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8797,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8795,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8793,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46610:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303035384239304246424537",
																								"id": 8794,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46628:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607812829903847_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3847"
																								},
																								"value": "0x1000000000000000000000058B90BFBE7"
																							},
																							"src": "46610:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8796,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46667:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46610:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46592:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8799,
																				"nodeType": "ExpressionStatement",
																				"src": "46592:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8805,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8803,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8801,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46684:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030303030",
																						"id": 8802,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46697:12:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_274877906944_by_1",
																							"typeString": "int_const 274877906944"
																						},
																						"value": "0x4000000000"
																					},
																					"src": "46684:25:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8804,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46712:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46684:29:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8814,
																			"nodeType": "IfStatement",
																			"src": "46680:113:22",
																			"trueBody": {
																				"expression": {
																					"id": 8812,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8806,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46715:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8811,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8809,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8807,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46733:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303032433543383546444633",
																								"id": 8808,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46751:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607622299057651_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7651"
																								},
																								"value": "0x100000000000000000000002C5C85FDF3"
																							},
																							"src": "46733:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8810,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46790:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46733:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46715:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8813,
																				"nodeType": "ExpressionStatement",
																				"src": "46715:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8819,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8817,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8815,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46807:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030303030",
																						"id": 8816,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46820:12:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_137438953472_by_1",
																							"typeString": "int_const 137438953472"
																						},
																						"value": "0x2000000000"
																					},
																					"src": "46807:25:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8818,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46835:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46807:29:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8828,
																			"nodeType": "IfStatement",
																			"src": "46803:113:22",
																			"trueBody": {
																				"expression": {
																					"id": 8826,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8820,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46838:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8825,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8823,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8821,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46856:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303031363245343246454639",
																								"id": 8822,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46874:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607527033634553_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4553"
																								},
																								"value": "0x10000000000000000000000162E42FEF9"
																							},
																							"src": "46856:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8824,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "46913:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46856:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46838:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8827,
																				"nodeType": "ExpressionStatement",
																				"src": "46838:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8833,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8831,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8829,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "46930:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030303030",
																						"id": 8830,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "46943:12:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_68719476736_by_1",
																							"typeString": "int_const 68719476736"
																						},
																						"value": "0x1000000000"
																					},
																					"src": "46930:25:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8832,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "46958:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "46930:29:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8842,
																			"nodeType": "IfStatement",
																			"src": "46926:113:22",
																			"trueBody": {
																				"expression": {
																					"id": 8840,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8834,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "46961:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8839,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8837,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8835,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "46979:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030423137323137463743",
																								"id": 8836,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "46997:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607479400923004_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3004"
																								},
																								"value": "0x100000000000000000000000B17217F7C"
																							},
																							"src": "46979:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8838,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47036:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "46979:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "46961:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8841,
																				"nodeType": "ExpressionStatement",
																				"src": "46961:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8847,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8845,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8843,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47053:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030303030",
																						"id": 8844,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47066:11:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_34359738368_by_1",
																							"typeString": "int_const 34359738368"
																						},
																						"value": "0x800000000"
																					},
																					"src": "47053:24:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8846,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47080:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47053:28:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8856,
																			"nodeType": "IfStatement",
																			"src": "47049:112:22",
																			"trueBody": {
																				"expression": {
																					"id": 8854,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8848,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47083:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8853,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8851,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8849,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47101:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030353842393042464244",
																								"id": 8850,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47119:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607455584567229_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7229"
																								},
																								"value": "0x10000000000000000000000058B90BFBD"
																							},
																							"src": "47101:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8852,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47158:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47101:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47083:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8855,
																				"nodeType": "ExpressionStatement",
																				"src": "47083:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8861,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8859,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8857,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47175:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030303030",
																						"id": 8858,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47188:11:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_17179869184_by_1",
																							"typeString": "int_const 17179869184"
																						},
																						"value": "0x400000000"
																					},
																					"src": "47175:24:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8860,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47202:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47175:28:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8870,
																			"nodeType": "IfStatement",
																			"src": "47171:112:22",
																			"trueBody": {
																				"expression": {
																					"id": 8868,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8862,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47205:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8867,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8865,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8863,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47223:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030324335433835464445",
																								"id": 8864,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47241:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607443676389342_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9342"
																								},
																								"value": "0x1000000000000000000000002C5C85FDE"
																							},
																							"src": "47223:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8866,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47280:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47223:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47205:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8869,
																				"nodeType": "ExpressionStatement",
																				"src": "47205:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8875,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8873,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8871,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47297:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030303030",
																						"id": 8872,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47310:11:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_8589934592_by_1",
																							"typeString": "int_const 8589934592"
																						},
																						"value": "0x200000000"
																					},
																					"src": "47297:24:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8874,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47324:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47297:28:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8884,
																			"nodeType": "IfStatement",
																			"src": "47293:112:22",
																			"trueBody": {
																				"expression": {
																					"id": 8882,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8876,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47327:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8881,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8879,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8877,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47345:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030313632453432464545",
																								"id": 8878,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47363:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607437722300398_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0398"
																								},
																								"value": "0x100000000000000000000000162E42FEE"
																							},
																							"src": "47345:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8880,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47402:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47345:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47327:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8883,
																				"nodeType": "ExpressionStatement",
																				"src": "47327:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8889,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8887,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8885,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47419:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030303030",
																						"id": 8886,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47432:11:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4294967296_by_1",
																							"typeString": "int_const 4294967296"
																						},
																						"value": "0x100000000"
																					},
																					"src": "47419:24:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8888,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47446:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47419:28:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8898,
																			"nodeType": "IfStatement",
																			"src": "47415:112:22",
																			"trueBody": {
																				"expression": {
																					"id": 8896,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8890,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47449:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8895,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8893,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8891,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47467:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030304231373231374636",
																								"id": 8892,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47485:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607434745255926_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...5926"
																								},
																								"value": "0x1000000000000000000000000B17217F6"
																							},
																							"src": "47467:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8894,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47524:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47467:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47449:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8897,
																				"nodeType": "ExpressionStatement",
																				"src": "47449:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8903,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8901,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8899,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47541:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030303030",
																						"id": 8900,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47554:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2147483648_by_1",
																							"typeString": "int_const 2147483648"
																						},
																						"value": "0x80000000"
																					},
																					"src": "47541:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8902,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47567:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47541:27:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8912,
																			"nodeType": "IfStatement",
																			"src": "47537:111:22",
																			"trueBody": {
																				"expression": {
																					"id": 8910,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8904,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47570:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8909,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8907,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8905,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47588:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303538423930424641",
																								"id": 8906,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47606:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607433256733690_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3690"
																								},
																								"value": "0x100000000000000000000000058B90BFA"
																							},
																							"src": "47588:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8908,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47645:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47588:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47570:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8911,
																				"nodeType": "ExpressionStatement",
																				"src": "47570:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8917,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8915,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8913,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47662:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030303030",
																						"id": 8914,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47675:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1073741824_by_1",
																							"typeString": "int_const 1073741824"
																						},
																						"value": "0x40000000"
																					},
																					"src": "47662:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8916,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47688:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47662:27:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8926,
																			"nodeType": "IfStatement",
																			"src": "47658:111:22",
																			"trueBody": {
																				"expression": {
																					"id": 8924,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8918,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47691:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8923,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8921,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8919,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47709:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303243354338354643",
																								"id": 8920,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47727:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607432512472572_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2572"
																								},
																								"value": "0x10000000000000000000000002C5C85FC"
																							},
																							"src": "47709:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8922,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47766:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47709:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47691:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8925,
																				"nodeType": "ExpressionStatement",
																				"src": "47691:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8931,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8929,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8927,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47783:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030303030",
																						"id": 8928,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47796:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_536870912_by_1",
																							"typeString": "int_const 536870912"
																						},
																						"value": "0x20000000"
																					},
																					"src": "47783:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8930,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47809:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47783:27:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8940,
																			"nodeType": "IfStatement",
																			"src": "47779:111:22",
																			"trueBody": {
																				"expression": {
																					"id": 8938,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8932,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47812:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8937,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8935,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8933,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47830:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303136324534324644",
																								"id": 8934,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47848:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607432140342013_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2013"
																								},
																								"value": "0x1000000000000000000000000162E42FD"
																							},
																							"src": "47830:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8936,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "47887:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47830:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47812:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8939,
																				"nodeType": "ExpressionStatement",
																				"src": "47812:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8945,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8943,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8941,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "47904:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030303030",
																						"id": 8942,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "47917:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_268435456_by_1",
																							"typeString": "int_const 268435456"
																						},
																						"value": "0x10000000"
																					},
																					"src": "47904:23:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8944,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "47930:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "47904:27:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8954,
																			"nodeType": "IfStatement",
																			"src": "47900:111:22",
																			"trueBody": {
																				"expression": {
																					"id": 8952,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8946,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "47933:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8951,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8949,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8947,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "47951:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303042313732313745",
																								"id": 8948,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "47969:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431954276734_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6734"
																								},
																								"value": "0x10000000000000000000000000B17217E"
																							},
																							"src": "47951:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8950,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48008:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "47951:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "47933:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8953,
																				"nodeType": "ExpressionStatement",
																				"src": "47933:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8959,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8957,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8955,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48025:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030303030",
																						"id": 8956,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48038:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_134217728_by_1",
																							"typeString": "int_const 134217728"
																						},
																						"value": "0x8000000"
																					},
																					"src": "48025:22:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8958,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48050:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48025:26:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8968,
																			"nodeType": "IfStatement",
																			"src": "48021:110:22",
																			"trueBody": {
																				"expression": {
																					"id": 8966,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8960,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48053:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8965,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8963,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8961,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48071:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303035384239304245",
																								"id": 8962,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48089:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431861244094_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4094"
																								},
																								"value": "0x1000000000000000000000000058B90BE"
																							},
																							"src": "48071:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8964,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48128:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48071:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48053:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8967,
																				"nodeType": "ExpressionStatement",
																				"src": "48053:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8973,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8971,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8969,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48145:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030303030",
																						"id": 8970,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48158:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_67108864_by_1",
																							"typeString": "int_const 67108864"
																						},
																						"value": "0x4000000"
																					},
																					"src": "48145:22:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8972,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48170:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48145:26:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8982,
																			"nodeType": "IfStatement",
																			"src": "48141:110:22",
																			"trueBody": {
																				"expression": {
																					"id": 8980,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8974,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48173:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8979,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8977,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8975,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48191:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303032433543383545",
																								"id": 8976,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48209:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431814727774_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7774"
																								},
																								"value": "0x100000000000000000000000002C5C85E"
																							},
																							"src": "48191:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8978,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48248:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48191:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48173:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8981,
																				"nodeType": "ExpressionStatement",
																				"src": "48173:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 8987,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8985,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8983,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48265:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030303030",
																						"id": 8984,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48278:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_33554432_by_1",
																							"typeString": "int_const 33554432"
																						},
																						"value": "0x2000000"
																					},
																					"src": "48265:22:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 8986,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48290:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48265:26:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 8996,
																			"nodeType": "IfStatement",
																			"src": "48261:110:22",
																			"trueBody": {
																				"expression": {
																					"id": 8994,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 8988,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48293:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 8993,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 8991,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 8989,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48311:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303031363245343245",
																								"id": 8990,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48329:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431791469614_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...9614"
																								},
																								"value": "0x10000000000000000000000000162E42E"
																							},
																							"src": "48311:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 8992,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48368:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48311:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48293:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 8995,
																				"nodeType": "ExpressionStatement",
																				"src": "48293:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9001,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 8999,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 8997,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48385:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030303030",
																						"id": 8998,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48398:9:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16777216_by_1",
																							"typeString": "int_const 16777216"
																						},
																						"value": "0x1000000"
																					},
																					"src": "48385:22:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9000,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48410:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48385:26:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9010,
																			"nodeType": "IfStatement",
																			"src": "48381:110:22",
																			"trueBody": {
																				"expression": {
																					"id": 9008,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9002,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48413:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9007,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9005,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9003,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48431:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030423137323136",
																								"id": 9004,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48449:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431779840534_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...0534"
																								},
																								"value": "0x100000000000000000000000000B17216"
																							},
																							"src": "48431:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9006,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48488:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48431:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48413:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9009,
																				"nodeType": "ExpressionStatement",
																				"src": "48413:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9015,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9013,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9011,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48505:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030303030",
																						"id": 9012,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48518:8:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_8388608_by_1",
																							"typeString": "int_const 8388608"
																						},
																						"value": "0x800000"
																					},
																					"src": "48505:21:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9014,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48529:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48505:25:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9024,
																			"nodeType": "IfStatement",
																			"src": "48501:109:22",
																			"trueBody": {
																				"expression": {
																					"id": 9022,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9016,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48532:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9021,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9019,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9017,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48550:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030353842393041",
																								"id": 9018,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48568:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431774025994_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...5994"
																								},
																								"value": "0x10000000000000000000000000058B90A"
																							},
																							"src": "48550:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9020,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48607:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48550:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48532:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9023,
																				"nodeType": "ExpressionStatement",
																				"src": "48532:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9029,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9027,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9025,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48624:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030303030",
																						"id": 9026,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48637:8:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4194304_by_1",
																							"typeString": "int_const 4194304"
																						},
																						"value": "0x400000"
																					},
																					"src": "48624:21:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9028,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48648:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48624:25:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9038,
																			"nodeType": "IfStatement",
																			"src": "48620:109:22",
																			"trueBody": {
																				"expression": {
																					"id": 9036,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9030,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48651:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9035,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9033,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9031,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48669:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030324335433834",
																								"id": 9032,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48687:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431771118724_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8724"
																								},
																								"value": "0x1000000000000000000000000002C5C84"
																							},
																							"src": "48669:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9034,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48726:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48669:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48651:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9037,
																				"nodeType": "ExpressionStatement",
																				"src": "48651:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9043,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9041,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9039,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48743:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030303030",
																						"id": 9040,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48756:8:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2097152_by_1",
																							"typeString": "int_const 2097152"
																						},
																						"value": "0x200000"
																					},
																					"src": "48743:21:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9042,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48767:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48743:25:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9052,
																			"nodeType": "IfStatement",
																			"src": "48739:109:22",
																			"trueBody": {
																				"expression": {
																					"id": 9050,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9044,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48770:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9049,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9047,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9045,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48788:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030313632453431",
																								"id": 9046,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48806:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431769665089_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...5089"
																								},
																								"value": "0x100000000000000000000000000162E41"
																							},
																							"src": "48788:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9048,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48845:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48788:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48770:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9051,
																				"nodeType": "ExpressionStatement",
																				"src": "48770:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9057,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9055,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9053,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48862:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030303030",
																						"id": 9054,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48875:8:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1048576_by_1",
																							"typeString": "int_const 1048576"
																						},
																						"value": "0x100000"
																					},
																					"src": "48862:21:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9056,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "48886:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48862:25:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9066,
																			"nodeType": "IfStatement",
																			"src": "48858:109:22",
																			"trueBody": {
																				"expression": {
																					"id": 9064,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9058,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "48889:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9063,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9061,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9059,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "48907:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030304231373230",
																								"id": 9060,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "48925:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768938272_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...8272"
																								},
																								"value": "0x1000000000000000000000000000B1720"
																							},
																							"src": "48907:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9062,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "48964:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "48907:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "48889:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9065,
																				"nodeType": "ExpressionStatement",
																				"src": "48889:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9071,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9069,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9067,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "48981:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830303030",
																						"id": 9068,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "48994:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_524288_by_1",
																							"typeString": "int_const 524288"
																						},
																						"value": "0x80000"
																					},
																					"src": "48981:20:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9070,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49004:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "48981:24:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9080,
																			"nodeType": "IfStatement",
																			"src": "48977:108:22",
																			"trueBody": {
																				"expression": {
																					"id": 9078,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9072,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49007:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9077,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9075,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9073,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49025:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303538423846",
																								"id": 9074,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49043:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768574863_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4863"
																								},
																								"value": "0x100000000000000000000000000058B8F"
																							},
																							"src": "49025:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9076,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49082:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49025:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49007:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9079,
																				"nodeType": "ExpressionStatement",
																				"src": "49007:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9085,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9083,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9081,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49099:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430303030",
																						"id": 9082,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49112:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_262144_by_1",
																							"typeString": "int_const 262144"
																						},
																						"value": "0x40000"
																					},
																					"src": "49099:20:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9084,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49122:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49099:24:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9094,
																			"nodeType": "IfStatement",
																			"src": "49095:108:22",
																			"trueBody": {
																				"expression": {
																					"id": 9092,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9086,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49125:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9091,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9089,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9087,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49143:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303243354337",
																								"id": 9088,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49161:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768393159_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...3159"
																								},
																								"value": "0x10000000000000000000000000002C5C7"
																							},
																							"src": "49143:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9090,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49200:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49143:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49125:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9093,
																				"nodeType": "ExpressionStatement",
																				"src": "49125:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9099,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9097,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9095,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49217:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230303030",
																						"id": 9096,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49230:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_131072_by_1",
																							"typeString": "int_const 131072"
																						},
																						"value": "0x20000"
																					},
																					"src": "49217:20:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9098,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49240:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49217:24:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9108,
																			"nodeType": "IfStatement",
																			"src": "49213:108:22",
																			"trueBody": {
																				"expression": {
																					"id": 9106,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9100,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49243:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9105,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9103,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9101,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49261:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303136324533",
																								"id": 9102,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49279:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768302307_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2307"
																								},
																								"value": "0x1000000000000000000000000000162E3"
																							},
																							"src": "49261:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9104,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49318:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49261:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49243:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9107,
																				"nodeType": "ExpressionStatement",
																				"src": "49243:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9113,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9111,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9109,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49335:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130303030",
																						"id": 9110,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49348:7:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_65536_by_1",
																							"typeString": "int_const 65536"
																						},
																						"value": "0x10000"
																					},
																					"src": "49335:20:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9112,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49358:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49335:24:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9122,
																			"nodeType": "IfStatement",
																			"src": "49331:108:22",
																			"trueBody": {
																				"expression": {
																					"id": 9120,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9114,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49361:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9119,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9117,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9115,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49379:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303042313731",
																								"id": 9116,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49397:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768256881_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...6881"
																								},
																								"value": "0x10000000000000000000000000000B171"
																							},
																							"src": "49379:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9118,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49436:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49379:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49361:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9121,
																				"nodeType": "ExpressionStatement",
																				"src": "49361:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9127,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9125,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9123,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49453:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838303030",
																						"id": 9124,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49466:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_32768_by_1",
																							"typeString": "int_const 32768"
																						},
																						"value": "0x8000"
																					},
																					"src": "49453:19:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9126,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49475:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49453:23:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9136,
																			"nodeType": "IfStatement",
																			"src": "49449:107:22",
																			"trueBody": {
																				"expression": {
																					"id": 9134,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9128,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49478:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9133,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9131,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9129,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49496:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303035384238",
																								"id": 9130,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49514:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768234168_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4168"
																								},
																								"value": "0x1000000000000000000000000000058B8"
																							},
																							"src": "49496:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9132,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49553:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49496:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49478:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9135,
																				"nodeType": "ExpressionStatement",
																				"src": "49478:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9141,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9139,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9137,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49570:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834303030",
																						"id": 9138,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49583:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16384_by_1",
																							"typeString": "int_const 16384"
																						},
																						"value": "0x4000"
																					},
																					"src": "49570:19:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9140,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49592:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49570:23:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9150,
																			"nodeType": "IfStatement",
																			"src": "49566:107:22",
																			"trueBody": {
																				"expression": {
																					"id": 9148,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9142,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49595:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9147,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9145,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9143,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49613:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303032433542",
																								"id": 9144,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49631:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768222811_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2811"
																								},
																								"value": "0x100000000000000000000000000002C5B"
																							},
																							"src": "49613:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9146,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49670:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49613:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49595:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9149,
																				"nodeType": "ExpressionStatement",
																				"src": "49595:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9155,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9153,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9151,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49687:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307832303030",
																						"id": 9152,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49700:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_8192_by_1",
																							"typeString": "int_const 8192"
																						},
																						"value": "0x2000"
																					},
																					"src": "49687:19:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9154,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49709:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49687:23:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9164,
																			"nodeType": "IfStatement",
																			"src": "49683:107:22",
																			"trueBody": {
																				"expression": {
																					"id": 9162,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9156,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49712:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9161,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9159,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9157,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49730:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303031363244",
																								"id": 9158,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49748:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768217133_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...7133"
																								},
																								"value": "0x10000000000000000000000000000162D"
																							},
																							"src": "49730:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9160,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49787:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49730:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49712:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9163,
																				"nodeType": "ExpressionStatement",
																				"src": "49712:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9169,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9167,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9165,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49804:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307831303030",
																						"id": 9166,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49817:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4096_by_1",
																							"typeString": "int_const 4096"
																						},
																						"value": "0x1000"
																					},
																					"src": "49804:19:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9168,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49826:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49804:23:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9178,
																			"nodeType": "IfStatement",
																			"src": "49800:107:22",
																			"trueBody": {
																				"expression": {
																					"id": 9176,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9170,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49829:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9175,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9173,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9171,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49847:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030423136",
																								"id": 9172,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49865:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768214294_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...4294"
																								},
																								"value": "0x100000000000000000000000000000B16"
																							},
																							"src": "49847:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9174,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "49904:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49847:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49829:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9177,
																				"nodeType": "ExpressionStatement",
																				"src": "49829:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9183,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9181,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9179,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "49921:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078383030",
																						"id": 9180,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "49934:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_2048_by_1",
																							"typeString": "int_const 2048"
																						},
																						"value": "0x800"
																					},
																					"src": "49921:18:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9182,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "49942:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "49921:22:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9192,
																			"nodeType": "IfStatement",
																			"src": "49917:106:22",
																			"trueBody": {
																				"expression": {
																					"id": 9190,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9184,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "49945:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9189,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9187,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9185,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "49963:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030353841",
																								"id": 9186,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "49981:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768212874_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2874"
																								},
																								"value": "0x10000000000000000000000000000058A"
																							},
																							"src": "49963:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9188,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50020:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "49963:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "49945:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9191,
																				"nodeType": "ExpressionStatement",
																				"src": "49945:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9197,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9195,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9193,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50037:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078343030",
																						"id": 9194,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50050:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_1024_by_1",
																							"typeString": "int_const 1024"
																						},
																						"value": "0x400"
																					},
																					"src": "50037:18:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9196,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50058:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50037:22:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9206,
																			"nodeType": "IfStatement",
																			"src": "50033:106:22",
																			"trueBody": {
																				"expression": {
																					"id": 9204,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9198,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50061:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9203,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9201,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9199,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50079:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030324334",
																								"id": 9200,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50097:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768212164_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...2164"
																								},
																								"value": "0x1000000000000000000000000000002C4"
																							},
																							"src": "50079:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9202,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50136:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50079:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50061:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9205,
																				"nodeType": "ExpressionStatement",
																				"src": "50061:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9211,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9209,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9207,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50153:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078323030",
																						"id": 9208,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50166:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_512_by_1",
																							"typeString": "int_const 512"
																						},
																						"value": "0x200"
																					},
																					"src": "50153:18:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9210,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50174:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50153:22:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9220,
																			"nodeType": "IfStatement",
																			"src": "50149:106:22",
																			"trueBody": {
																				"expression": {
																					"id": 9218,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9212,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50177:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9217,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9215,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9213,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50195:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030313631",
																								"id": 9214,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50213:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211809_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1809"
																								},
																								"value": "0x100000000000000000000000000000161"
																							},
																							"src": "50195:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9216,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50252:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50195:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50177:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9219,
																				"nodeType": "ExpressionStatement",
																				"src": "50177:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9225,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9223,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9221,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50269:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "3078313030",
																						"id": 9222,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50282:5:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_256_by_1",
																							"typeString": "int_const 256"
																						},
																						"value": "0x100"
																					},
																					"src": "50269:18:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9224,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50290:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50269:22:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9234,
																			"nodeType": "IfStatement",
																			"src": "50265:106:22",
																			"trueBody": {
																				"expression": {
																					"id": 9232,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9226,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50293:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9231,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9229,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9227,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50311:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030304230",
																								"id": 9228,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50329:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211632_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1632"
																								},
																								"value": "0x1000000000000000000000000000000B0"
																							},
																							"src": "50311:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9230,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50368:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50311:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50293:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9233,
																				"nodeType": "ExpressionStatement",
																				"src": "50293:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9239,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9237,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9235,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50385:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783830",
																						"id": 9236,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50398:4:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_128_by_1",
																							"typeString": "int_const 128"
																						},
																						"value": "0x80"
																					},
																					"src": "50385:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9238,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50405:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50385:21:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9248,
																			"nodeType": "IfStatement",
																			"src": "50381:105:22",
																			"trueBody": {
																				"expression": {
																					"id": 9246,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9240,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50408:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9245,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9243,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9241,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50426:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303537",
																								"id": 9242,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50444:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211543_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1543"
																								},
																								"value": "0x100000000000000000000000000000057"
																							},
																							"src": "50426:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9244,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50483:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50426:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50408:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9247,
																				"nodeType": "ExpressionStatement",
																				"src": "50408:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9253,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9251,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9249,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50500:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783430",
																						"id": 9250,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50513:4:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_64_by_1",
																							"typeString": "int_const 64"
																						},
																						"value": "0x40"
																					},
																					"src": "50500:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9252,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50520:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50500:21:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9262,
																			"nodeType": "IfStatement",
																			"src": "50496:105:22",
																			"trueBody": {
																				"expression": {
																					"id": 9260,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9254,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50523:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9259,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9257,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9255,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50541:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303242",
																								"id": 9256,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50559:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211499_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1499"
																								},
																								"value": "0x10000000000000000000000000000002B"
																							},
																							"src": "50541:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9258,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50598:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50541:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50523:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9261,
																				"nodeType": "ExpressionStatement",
																				"src": "50523:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9267,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9265,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9263,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50615:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783230",
																						"id": 9264,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50628:4:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_32_by_1",
																							"typeString": "int_const 32"
																						},
																						"value": "0x20"
																					},
																					"src": "50615:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9266,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50635:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50615:21:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9276,
																			"nodeType": "IfStatement",
																			"src": "50611:105:22",
																			"trueBody": {
																				"expression": {
																					"id": 9274,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9268,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50638:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9273,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9271,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9269,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50656:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303135",
																								"id": 9270,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50674:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211477_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1477"
																								},
																								"value": "0x100000000000000000000000000000015"
																							},
																							"src": "50656:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9272,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50713:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50656:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50638:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9275,
																				"nodeType": "ExpressionStatement",
																				"src": "50638:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9281,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9279,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9277,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50730:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "30783130",
																						"id": 9278,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50743:4:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16_by_1",
																							"typeString": "int_const 16"
																						},
																						"value": "0x10"
																					},
																					"src": "50730:17:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9280,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50750:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50730:21:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9290,
																			"nodeType": "IfStatement",
																			"src": "50726:105:22",
																			"trueBody": {
																				"expression": {
																					"id": 9288,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9282,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50753:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9287,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9285,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9283,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50771:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303041",
																								"id": 9284,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50789:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211466_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1466"
																								},
																								"value": "0x10000000000000000000000000000000A"
																							},
																							"src": "50771:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9286,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50828:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50771:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50753:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9289,
																				"nodeType": "ExpressionStatement",
																				"src": "50753:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9295,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9293,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9291,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50845:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307838",
																						"id": 9292,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50858:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_8_by_1",
																							"typeString": "int_const 8"
																						},
																						"value": "0x8"
																					},
																					"src": "50845:16:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9294,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50864:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50845:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9304,
																			"nodeType": "IfStatement",
																			"src": "50841:104:22",
																			"trueBody": {
																				"expression": {
																					"id": 9302,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9296,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50867:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9301,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9299,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9297,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50885:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303034",
																								"id": 9298,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "50903:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211460_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1460"
																								},
																								"value": "0x100000000000000000000000000000004"
																							},
																							"src": "50885:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9300,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "50942:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50885:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50867:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9303,
																				"nodeType": "ExpressionStatement",
																				"src": "50867:78:22"
																			}
																		},
																		{
																			"condition": {
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 9309,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9307,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9305,
																						"name": "xSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7446,
																						"src": "50959:10:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "&",
																					"rightExpression": {
																						"hexValue": "307834",
																						"id": 9306,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "50972:3:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_4_by_1",
																							"typeString": "int_const 4"
																						},
																						"value": "0x4"
																					},
																					"src": "50959:16:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">",
																				"rightExpression": {
																					"hexValue": "30",
																					"id": 9308,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "50978:1:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_rational_0_by_1",
																						"typeString": "int_const 0"
																					},
																					"value": "0"
																				},
																				"src": "50959:20:22",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"id": 9318,
																			"nodeType": "IfStatement",
																			"src": "50955:104:22",
																			"trueBody": {
																				"expression": {
																					"id": 9316,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftHandSide": {
																						"id": 9310,
																						"name": "resultSignifier",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7552,
																						"src": "50981:15:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "Assignment",
																					"operator": "=",
																					"rightHandSide": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 9315,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 9313,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"id": 9311,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "50999:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303031",
																								"id": 9312,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "51017:35:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_340282366920938463463374607431768211457_by_1",
																									"typeString": "int_const 3402...(31 digits omitted)...1457"
																								},
																								"value": "0x100000000000000000000000000000001"
																							},
																							"src": "50999:53:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": ">>",
																						"rightExpression": {
																							"hexValue": "313238",
																							"id": 9314,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "51056:3:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_128_by_1",
																								"typeString": "int_const 128"
																							},
																							"value": "128"
																						},
																						"src": "50999:60:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "50981:78:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"id": 9317,
																				"nodeType": "ExpressionStatement",
																				"src": "50981:78:22"
																			}
																		},
																		{
																			"condition": {
																				"id": 9320,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "UnaryOperation",
																				"operator": "!",
																				"prefix": true,
																				"src": "51074:10:22",
																				"subExpression": {
																					"id": 9319,
																					"name": "xNegative",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 7426,
																					"src": "51075:9:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"falseBody": {
																				"condition": {
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 9336,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 9334,
																						"name": "resultExponent",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 7526,
																						"src": "51227:14:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "<=",
																					"rightExpression": {
																						"hexValue": "307833464645",
																						"id": 9335,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"kind": "number",
																						"lValueRequested": false,
																						"nodeType": "Literal",
																						"src": "51245:6:22",
																						"typeDescriptions": {
																							"typeIdentifier": "t_rational_16382_by_1",
																							"typeString": "int_const 16382"
																						},
																						"value": "0x3FFE"
																					},
																					"src": "51227:24:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bool",
																						"typeString": "bool"
																					}
																				},
																				"falseBody": {
																					"id": 9364,
																					"nodeType": "Block",
																					"src": "51406:112:22",
																					"statements": [
																						{
																							"expression": {
																								"id": 9358,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 9352,
																									"name": "resultSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7552,
																									"src": "51418:15:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 9357,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 9353,
																										"name": "resultSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7552,
																										"src": "51436:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": ">>",
																									"rightExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 9356,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 9354,
																											"name": "resultExponent",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7526,
																											"src": "51455:14:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "-",
																										"rightExpression": {
																											"hexValue": "3136333637",
																											"id": 9355,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "51472:5:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_16367_by_1",
																												"typeString": "int_const 16367"
																											},
																											"value": "16367"
																										},
																										"src": "51455:22:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "51436:41:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "51418:59:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 9359,
																							"nodeType": "ExpressionStatement",
																							"src": "51418:59:22"
																						},
																						{
																							"expression": {
																								"id": 9362,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 9360,
																									"name": "resultExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7526,
																									"src": "51489:14:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"hexValue": "30",
																									"id": 9361,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "51506:1:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_0_by_1",
																										"typeString": "int_const 0"
																									},
																									"value": "0"
																								},
																								"src": "51489:18:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 9363,
																							"nodeType": "ExpressionStatement",
																							"src": "51489:18:22"
																						}
																					]
																				},
																				"id": 9365,
																				"nodeType": "IfStatement",
																				"src": "51223:295:22",
																				"trueBody": {
																					"id": 9351,
																					"nodeType": "Block",
																					"src": "51253:147:22",
																					"statements": [
																						{
																							"expression": {
																								"id": 9343,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 9337,
																									"name": "resultSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7552,
																									"src": "51265:15:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 9342,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 9340,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"id": 9338,
																											"name": "resultSignifier",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 7552,
																											"src": "51283:15:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": ">>",
																										"rightExpression": {
																											"hexValue": "3135",
																											"id": 9339,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": true,
																											"kind": "number",
																											"lValueRequested": false,
																											"nodeType": "Literal",
																											"src": "51302:2:22",
																											"typeDescriptions": {
																												"typeIdentifier": "t_rational_15_by_1",
																												"typeString": "int_const 15"
																											},
																											"value": "15"
																										},
																										"src": "51283:21:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "&",
																									"rightExpression": {
																										"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																										"id": 9341,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "51307:30:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																											"typeString": "int_const 5192...(26 digits omitted)...0095"
																										},
																										"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																									},
																									"src": "51283:54:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "51265:72:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 9344,
																							"nodeType": "ExpressionStatement",
																							"src": "51265:72:22"
																						},
																						{
																							"expression": {
																								"id": 9349,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftHandSide": {
																									"id": 9345,
																									"name": "resultExponent",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7526,
																									"src": "51349:14:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "Assignment",
																								"operator": "=",
																								"rightHandSide": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 9348,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"hexValue": "307833464646",
																										"id": 9346,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "51366:6:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_16383_by_1",
																											"typeString": "int_const 16383"
																										},
																										"value": "0x3FFF"
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"id": 9347,
																										"name": "resultExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7526,
																										"src": "51375:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "51366:23:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "51349:40:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"id": 9350,
																							"nodeType": "ExpressionStatement",
																							"src": "51349:40:22"
																						}
																					]
																				}
																			},
																			"id": 9366,
																			"nodeType": "IfStatement",
																			"src": "51070:448:22",
																			"trueBody": {
																				"id": 9333,
																				"nodeType": "Block",
																				"src": "51086:131:22",
																				"statements": [
																					{
																						"expression": {
																							"id": 9327,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 9321,
																								"name": "resultSignifier",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7552,
																								"src": "51098:15:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "=",
																							"rightHandSide": {
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 9326,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 9324,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 9322,
																										"name": "resultSignifier",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7552,
																										"src": "51116:15:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": ">>",
																									"rightExpression": {
																										"hexValue": "3135",
																										"id": 9323,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "51135:2:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_15_by_1",
																											"typeString": "int_const 15"
																										},
																										"value": "15"
																									},
																									"src": "51116:21:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "&",
																								"rightExpression": {
																									"hexValue": "307846464646464646464646464646464646464646464646464646464646",
																									"id": 9325,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "51140:30:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
																										"typeString": "int_const 5192...(26 digits omitted)...0095"
																									},
																									"value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
																								},
																								"src": "51116:54:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"src": "51098:72:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 9328,
																						"nodeType": "ExpressionStatement",
																						"src": "51098:72:22"
																					},
																					{
																						"expression": {
																							"id": 9331,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftHandSide": {
																								"id": 9329,
																								"name": "resultExponent",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 7526,
																								"src": "51182:14:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "Assignment",
																							"operator": "+=",
																							"rightHandSide": {
																								"hexValue": "307833464646",
																								"id": 9330,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "51200:6:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_16383_by_1",
																									"typeString": "int_const 16383"
																								},
																								"value": "0x3FFF"
																							},
																							"src": "51182:24:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"id": 9332,
																						"nodeType": "ExpressionStatement",
																						"src": "51182:24:22"
																					}
																				]
																			}
																		},
																		{
																			"expression": {
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 9375,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 9373,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 9371,
																										"name": "resultExponent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 7526,
																										"src": "51553:14:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "<<",
																									"rightExpression": {
																										"hexValue": "313132",
																										"id": 9372,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "51571:3:22",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_112_by_1",
																											"typeString": "int_const 112"
																										},
																										"value": "112"
																									},
																									"src": "51553:21:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "|",
																								"rightExpression": {
																									"id": 9374,
																									"name": "resultSignifier",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 7552,
																									"src": "51577:15:22",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"src": "51553:39:22",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"id": 9370,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"lValueRequested": false,
																							"nodeType": "ElementaryTypeNameExpression",
																							"src": "51544:7:22",
																							"typeDescriptions": {
																								"typeIdentifier": "t_type$_t_uint128_$",
																								"typeString": "type(uint128)"
																							},
																							"typeName": {
																								"id": 9369,
																								"name": "uint128",
																								"nodeType": "ElementaryTypeName",
																								"src": "51544:7:22",
																								"typeDescriptions": {}
																							}
																						},
																						"id": 9376,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "typeConversion",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "51544:49:22",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_uint128",
																							"typeString": "uint128"
																						}
																					],
																					"id": 9368,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"lValueRequested": false,
																					"nodeType": "ElementaryTypeNameExpression",
																					"src": "51535:7:22",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_bytes16_$",
																						"typeString": "type(bytes16)"
																					},
																					"typeName": {
																						"id": 9367,
																						"name": "bytes16",
																						"nodeType": "ElementaryTypeName",
																						"src": "51535:7:22",
																						"typeDescriptions": {}
																					}
																				},
																				"id": 9377,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "typeConversion",
																				"lValueRequested": false,
																				"nameLocations": [],
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "51535:59:22",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes16",
																					"typeString": "bytes16"
																				}
																			},
																			"functionReturnParameters": 7424,
																			"id": 9378,
																			"nodeType": "Return",
																			"src": "51528:66:22"
																		}
																	]
																},
																"id": 9380,
																"nodeType": "IfStatement",
																"src": "33837:17766:22",
																"trueBody": {
																	"expression": {
																		"hexValue": "30783346464630303030303030303030303030303030303030303030303030303030",
																		"id": 7474,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "33875:34:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_85065399433376081038215121361612832768_by_1",
																			"typeString": "int_const 8506...(30 digits omitted)...2768"
																		},
																		"value": "0x3FFF0000000000000000000000000000"
																	},
																	"functionReturnParameters": 7424,
																	"id": 7475,
																	"nodeType": "Return",
																	"src": "33868:41:22"
																}
															},
															"id": 9381,
															"nodeType": "IfStatement",
															"src": "33741:17862:22",
															"trueBody": {
																"expression": {
																	"condition": {
																		"id": 7466,
																		"name": "xNegative",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 7426,
																		"src": "33779:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseExpression": {
																		"id": 7468,
																		"name": "POSITIVE_INFINITY",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4343,
																		"src": "33807:17:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"id": 7469,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "Conditional",
																	"src": "33779:45:22",
																	"trueExpression": {
																		"id": 7467,
																		"name": "POSITIVE_ZERO",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4337,
																		"src": "33791:13:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes16",
																			"typeString": "bytes16"
																		}
																	},
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																"functionReturnParameters": 7424,
																"id": 7470,
																"nodeType": "Return",
																"src": "33772:52:22"
															}
														},
														"id": 9382,
														"nodeType": "IfStatement",
														"src": "33674:17929:22",
														"trueBody": {
															"expression": {
																"id": 7461,
																"name": "NaN",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4349,
																"src": "33725:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes16",
																	"typeString": "bytes16"
																}
															},
															"functionReturnParameters": 7424,
															"id": 7462,
															"nodeType": "Return",
															"src": "33718:10:22"
														}
													}
												]
											}
										]
									},
									"documentation": {
										"id": 7418,
										"nodeType": "StructuredDocumentation",
										"src": "33271:115:22",
										"text": " Calculate 2^x.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 9385,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "pow_2",
									"nameLocation": "33398:5:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7421,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7420,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "33413:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 9385,
												"src": "33405:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7419,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "33405:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33404:11:22"
									},
									"returnParameters": {
										"id": 7424,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7423,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9385,
												"src": "33439:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 7422,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "33439:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33438:9:22"
									},
									"scope": 9524,
									"src": "33389:18224:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9401,
										"nodeType": "Block",
										"src": "51792:93:22",
										"statements": [
											{
												"id": 9400,
												"nodeType": "UncheckedBlock",
												"src": "51798:83:22",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 9395,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9388,
																			"src": "51835:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		{
																			"hexValue": "30783346464637313534373635324238324645313737374430464644413044323341",
																			"id": 9396,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "51838:34:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_85067698037446177749980914128013808186_by_1",
																				"typeString": "int_const 8506...(30 digits omitted)...8186"
																			},
																			"value": "0x3FFF71547652B82FE1777D0FFDA0D23A"
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			},
																			{
																				"typeIdentifier": "t_rational_85067698037446177749980914128013808186_by_1",
																				"typeString": "int_const 8506...(30 digits omitted)...8186"
																			}
																		],
																		"id": 9394,
																		"name": "mul",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 6536,
																		"src": "51830:3:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_bytes16_$_t_bytes16_$returns$_t_bytes16_$",
																			"typeString": "function (bytes16,bytes16) pure returns (bytes16)"
																		}
																	},
																	"id": 9397,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "51830:43:22",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																],
																"id": 9393,
																"name": "pow_2",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9385,
																"src": "51823:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_bytes16_$returns$_t_bytes16_$",
																	"typeString": "function (bytes16) pure returns (bytes16)"
																}
															},
															"id": 9398,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51823:51:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														},
														"functionReturnParameters": 9392,
														"id": 9399,
														"nodeType": "Return",
														"src": "51816:58:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 9386,
										"nodeType": "StructuredDocumentation",
										"src": "51617:115:22",
										"text": " Calculate e^x.\n @param x quadruple precision number\n @return quadruple precision number"
									},
									"id": 9402,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "exp",
									"nameLocation": "51744:3:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9389,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9388,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "51757:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 9402,
												"src": "51749:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 9387,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "51749:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51748:11:22"
									},
									"returnParameters": {
										"id": 9392,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9391,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9402,
												"src": "51783:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 9390,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "51783:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51782:9:22"
									},
									"scope": 9524,
									"src": "51735:150:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9522,
										"nodeType": "Block",
										"src": "52187:558:22",
										"statements": [
											{
												"id": 9521,
												"nodeType": "UncheckedBlock",
												"src": "52193:548:22",
												"statements": [
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 9413,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 9411,
																		"name": "x",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9405,
																		"src": "52220:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": ">",
																	"rightExpression": {
																		"hexValue": "30",
																		"id": 9412,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "52224:1:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	},
																	"src": "52220:5:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 9410,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "52211:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
																	"typeString": "function (bool) pure"
																}
															},
															"id": 9414,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52211:15:22",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 9415,
														"nodeType": "ExpressionStatement",
														"src": "52211:15:22"
													},
													{
														"assignments": [
															9417
														],
														"declarations": [
															{
																"constant": false,
																"id": 9417,
																"mutability": "mutable",
																"name": "result",
																"nameLocation": "52243:6:22",
																"nodeType": "VariableDeclaration",
																"scope": 9521,
																"src": "52235:14:22",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 9416,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "52235:7:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 9419,
														"initialValue": {
															"hexValue": "30",
															"id": 9418,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "52252:1:22",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "52235:18:22"
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9422,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9420,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52266:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
																"id": 9421,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52271:35:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
																	"typeString": "int_const 3402...(31 digits omitted)...1456"
																},
																"value": "0x100000000000000000000000000000000"
															},
															"src": "52266:40:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9432,
														"nodeType": "IfStatement",
														"src": "52262:75:22",
														"trueBody": {
															"id": 9431,
															"nodeType": "Block",
															"src": "52308:29:22",
															"statements": [
																{
																	"expression": {
																		"id": 9425,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9423,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52310:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "313238",
																			"id": 9424,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52316:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_128_by_1",
																				"typeString": "int_const 128"
																			},
																			"value": "128"
																		},
																		"src": "52310:9:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9426,
																	"nodeType": "ExpressionStatement",
																	"src": "52310:9:22"
																},
																{
																	"expression": {
																		"id": 9429,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9427,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52321:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "313238",
																			"id": 9428,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52331:3:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_128_by_1",
																				"typeString": "int_const 128"
																			},
																			"value": "128"
																		},
																		"src": "52321:13:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9430,
																	"nodeType": "ExpressionStatement",
																	"src": "52321:13:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9435,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9433,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52348:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783130303030303030303030303030303030",
																"id": 9434,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52353:19:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_18446744073709551616_by_1",
																	"typeString": "int_const 18446744073709551616"
																},
																"value": "0x10000000000000000"
															},
															"src": "52348:24:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9445,
														"nodeType": "IfStatement",
														"src": "52344:57:22",
														"trueBody": {
															"id": 9444,
															"nodeType": "Block",
															"src": "52374:27:22",
															"statements": [
																{
																	"expression": {
																		"id": 9438,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9436,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52376:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 9437,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52382:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "52376:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9439,
																	"nodeType": "ExpressionStatement",
																	"src": "52376:8:22"
																},
																{
																	"expression": {
																		"id": 9442,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9440,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52386:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3634",
																			"id": 9441,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52396:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_64_by_1",
																				"typeString": "int_const 64"
																			},
																			"value": "64"
																		},
																		"src": "52386:12:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9443,
																	"nodeType": "ExpressionStatement",
																	"src": "52386:12:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9448,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9446,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52412:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "3078313030303030303030",
																"id": 9447,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52417:11:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_4294967296_by_1",
																	"typeString": "int_const 4294967296"
																},
																"value": "0x100000000"
															},
															"src": "52412:16:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9458,
														"nodeType": "IfStatement",
														"src": "52408:49:22",
														"trueBody": {
															"id": 9457,
															"nodeType": "Block",
															"src": "52430:27:22",
															"statements": [
																{
																	"expression": {
																		"id": 9451,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9449,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52432:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 9450,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52438:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "52432:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9452,
																	"nodeType": "ExpressionStatement",
																	"src": "52432:8:22"
																},
																{
																	"expression": {
																		"id": 9455,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9453,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52442:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3332",
																			"id": 9454,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52452:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_32_by_1",
																				"typeString": "int_const 32"
																			},
																			"value": "32"
																		},
																		"src": "52442:12:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9456,
																	"nodeType": "ExpressionStatement",
																	"src": "52442:12:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9461,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9459,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52468:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783130303030",
																"id": 9460,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52473:7:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_65536_by_1",
																	"typeString": "int_const 65536"
																},
																"value": "0x10000"
															},
															"src": "52468:12:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9471,
														"nodeType": "IfStatement",
														"src": "52464:45:22",
														"trueBody": {
															"id": 9470,
															"nodeType": "Block",
															"src": "52482:27:22",
															"statements": [
																{
																	"expression": {
																		"id": 9464,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9462,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52484:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 9463,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52490:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "52484:8:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9465,
																	"nodeType": "ExpressionStatement",
																	"src": "52484:8:22"
																},
																{
																	"expression": {
																		"id": 9468,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9466,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52494:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "3136",
																			"id": 9467,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52504:2:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_16_by_1",
																				"typeString": "int_const 16"
																			},
																			"value": "16"
																		},
																		"src": "52494:12:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9469,
																	"nodeType": "ExpressionStatement",
																	"src": "52494:12:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9474,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9472,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52520:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "3078313030",
																"id": 9473,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52525:5:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_256_by_1",
																	"typeString": "int_const 256"
																},
																"value": "0x100"
															},
															"src": "52520:10:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9484,
														"nodeType": "IfStatement",
														"src": "52516:41:22",
														"trueBody": {
															"id": 9483,
															"nodeType": "Block",
															"src": "52532:25:22",
															"statements": [
																{
																	"expression": {
																		"id": 9477,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9475,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52534:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 9476,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52540:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "52534:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9478,
																	"nodeType": "ExpressionStatement",
																	"src": "52534:7:22"
																},
																{
																	"expression": {
																		"id": 9481,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9479,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52543:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "38",
																			"id": 9480,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52553:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_8_by_1",
																				"typeString": "int_const 8"
																			},
																			"value": "8"
																		},
																		"src": "52543:11:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9482,
																	"nodeType": "ExpressionStatement",
																	"src": "52543:11:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9487,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9485,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52568:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "30783130",
																"id": 9486,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52573:4:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_16_by_1",
																	"typeString": "int_const 16"
																},
																"value": "0x10"
															},
															"src": "52568:9:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9497,
														"nodeType": "IfStatement",
														"src": "52564:40:22",
														"trueBody": {
															"id": 9496,
															"nodeType": "Block",
															"src": "52579:25:22",
															"statements": [
																{
																	"expression": {
																		"id": 9490,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9488,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52581:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 9489,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52587:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "52581:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9491,
																	"nodeType": "ExpressionStatement",
																	"src": "52581:7:22"
																},
																{
																	"expression": {
																		"id": 9494,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9492,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52590:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "34",
																			"id": 9493,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52600:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_4_by_1",
																				"typeString": "int_const 4"
																			},
																			"value": "4"
																		},
																		"src": "52590:11:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9495,
																	"nodeType": "ExpressionStatement",
																	"src": "52590:11:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9500,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9498,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52615:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "307834",
																"id": 9499,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52620:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_4_by_1",
																	"typeString": "int_const 4"
																},
																"value": "0x4"
															},
															"src": "52615:8:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9510,
														"nodeType": "IfStatement",
														"src": "52611:39:22",
														"trueBody": {
															"id": 9509,
															"nodeType": "Block",
															"src": "52625:25:22",
															"statements": [
																{
																	"expression": {
																		"id": 9503,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9501,
																			"name": "x",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9405,
																			"src": "52627:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": ">>=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 9502,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52633:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "52627:7:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9504,
																	"nodeType": "ExpressionStatement",
																	"src": "52627:7:22"
																},
																{
																	"expression": {
																		"id": 9507,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftHandSide": {
																			"id": 9505,
																			"name": "result",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9417,
																			"src": "52636:6:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "Assignment",
																		"operator": "+=",
																		"rightHandSide": {
																			"hexValue": "32",
																			"id": 9506,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "52646:1:22",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_2_by_1",
																				"typeString": "int_const 2"
																			},
																			"value": "2"
																		},
																		"src": "52636:11:22",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"id": 9508,
																	"nodeType": "ExpressionStatement",
																	"src": "52636:11:22"
																}
															]
														}
													},
													{
														"condition": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 9513,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 9511,
																"name": "x",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9405,
																"src": "52661:1:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"hexValue": "307832",
																"id": 9512,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "52666:3:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_2_by_1",
																	"typeString": "int_const 2"
																},
																"value": "0x2"
															},
															"src": "52661:8:22",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"id": 9518,
														"nodeType": "IfStatement",
														"src": "52657:25:22",
														"trueBody": {
															"expression": {
																"id": 9516,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 9514,
																	"name": "result",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9417,
																	"src": "52671:6:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "Assignment",
																"operator": "+=",
																"rightHandSide": {
																	"hexValue": "31",
																	"id": 9515,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52681:1:22",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "52671:11:22",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"id": 9517,
															"nodeType": "ExpressionStatement",
															"src": "52671:11:22"
														}
													},
													{
														"expression": {
															"id": 9519,
															"name": "result",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9417,
															"src": "52728:6:22",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"functionReturnParameters": 9409,
														"id": 9520,
														"nodeType": "Return",
														"src": "52721:13:22"
													}
												]
											}
										]
									},
									"documentation": {
										"id": 9403,
										"nodeType": "StructuredDocumentation",
										"src": "51889:224:22",
										"text": " Get index of the most significant non-zero bit in binary representation of\n x.  Reverts if x is zero.\n @return index of the most significant non-zero bit in binary representation\n         of x"
									},
									"id": 9523,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mostSignificantBit",
									"nameLocation": "52125:18:22",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9406,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9405,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "52153:1:22",
												"nodeType": "VariableDeclaration",
												"scope": 9523,
												"src": "52145:9:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9404,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "52145:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52144:11:22"
									},
									"returnParameters": {
										"id": 9409,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9408,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9523,
												"src": "52178:7:22",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9407,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "52178:7:22",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52177:9:22"
									},
									"scope": 9524,
									"src": "52116:629:22",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 9525,
							"src": "486:52261:22",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "190:52558:22"
				},
				"id": 22
			},
			"contracts/TicketContract.sol": {
				"ast": {
					"absolutePath": "contracts/TicketContract.sol",
					"exportedSymbols": {
						"ABDKMathQuad": [
							9524
						],
						"AccessControl": [
							341
						],
						"Address": [
							2812
						],
						"AggregatorV3Interface": [
							45
						],
						"Base64": [
							2859
						],
						"Context": [
							2881
						],
						"ERC165": [
							3160
						],
						"ERC2981": [
							2559
						],
						"ERC721": [
							2142
						],
						"IAccessControl": [
							424
						],
						"IERC165": [
							3172
						],
						"IERC20": [
							807
						],
						"IERC20Permit": [
							843
						],
						"IERC2981": [
							592
						],
						"IERC721": [
							2259
						],
						"IERC721Errors": [
							682
						],
						"IERC721Metadata": [
							2305
						],
						"IERC721Receiver": [
							2277
						],
						"IEventContract": [
							11705
						],
						"ITicketReservationContract": [
							11740
						],
						"ITicketReservationFactory": [
							11657
						],
						"ITicketTypeContract": [
							11774
						],
						"ITixSellNftTemplateContract": [
							11790
						],
						"Ownable": [
							572
						],
						"PaymentSplitter": [
							11627
						],
						"SafeERC20": [
							1133
						],
						"Strings": [
							3136
						],
						"TicketContract": [
							11013
						],
						"TixSellEventLibrary": [
							11037
						],
						"TixSellLibrary": [
							11135
						],
						"TixSellReservationLibrary": [
							11155
						],
						"TokenPaymentSplitter": [
							11644
						]
					},
					"id": 11014,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 9526,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:23"
						},
						{
							"absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
							"file": "@openzeppelin/contracts/access/Ownable.sol",
							"id": 9527,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 573,
							"src": "65:52:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
							"file": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
							"id": 9528,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 2143,
							"src": "120:57:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/common/ERC2981.sol",
							"file": "@openzeppelin/contracts/token/common/ERC2981.sol",
							"id": 9529,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 2560,
							"src": "179:58:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
							"file": "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol",
							"id": 9530,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 46,
							"src": "238:76:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/access/AccessControl.sol",
							"file": "@openzeppelin/contracts/access/AccessControl.sol",
							"id": 9531,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 342,
							"src": "315:58:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "abdk-libraries-solidity/ABDKMathQuad.sol",
							"file": "abdk-libraries-solidity/ABDKMathQuad.sol",
							"id": 9532,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 9525,
							"src": "375:50:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Base64.sol",
							"file": "@openzeppelin/contracts/utils/Base64.sol",
							"id": 9533,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 2860,
							"src": "428:50:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/interfaces/IEventContract.sol",
							"file": "./interfaces/IEventContract.sol",
							"id": 9534,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11706,
							"src": "479:41:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/interfaces/ITixSellNftTemplate.sol",
							"file": "./interfaces/ITixSellNftTemplate.sol",
							"id": 9535,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11791,
							"src": "521:46:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/interfaces/ITicketReservationContract.sol",
							"file": "./interfaces/ITicketReservationContract.sol",
							"id": 9536,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11741,
							"src": "568:53:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/interfaces/ITicketTypeContract.sol",
							"file": "./interfaces/ITicketTypeContract.sol",
							"id": 9537,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11775,
							"src": "622:46:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/factories/ITicketReservationFactory.sol",
							"file": "./factories/ITicketReservationFactory.sol",
							"id": 9538,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11658,
							"src": "669:51:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "contracts/TokenPaymentSplitter.sol",
							"file": "./TokenPaymentSplitter.sol",
							"id": 9539,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11014,
							"sourceUnit": 11645,
							"src": "721:36:23",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 9540,
										"name": "ERC2981",
										"nameLocations": [
											"908:7:23"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2559,
										"src": "908:7:23"
									},
									"id": 9541,
									"nodeType": "InheritanceSpecifier",
									"src": "908:7:23"
								},
								{
									"baseName": {
										"id": 9542,
										"name": "ERC721",
										"nameLocations": [
											"916:6:23"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2142,
										"src": "916:6:23"
									},
									"id": 9543,
									"nodeType": "InheritanceSpecifier",
									"src": "916:6:23"
								},
								{
									"baseName": {
										"id": 9544,
										"name": "Ownable",
										"nameLocations": [
											"923:7:23"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 572,
										"src": "923:7:23"
									},
									"id": 9545,
									"nodeType": "InheritanceSpecifier",
									"src": "923:7:23"
								},
								{
									"baseName": {
										"id": 9546,
										"name": "AccessControl",
										"nameLocations": [
											"931:13:23"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 341,
										"src": "931:13:23"
									},
									"id": 9547,
									"nodeType": "InheritanceSpecifier",
									"src": "931:13:23"
								}
							],
							"canonicalName": "TicketContract",
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 11013,
							"linearizedBaseContracts": [
								11013,
								341,
								572,
								2142,
								682,
								2305,
								2259,
								2559,
								3160,
								592,
								3172,
								424,
								2881
							],
							"name": "TicketContract",
							"nameLocation": "889:14:23",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"functionSelector": "75b238fc",
									"id": 9552,
									"mutability": "constant",
									"name": "ADMIN_ROLE",
									"nameLocation": "975:10:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "951:60:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes32",
										"typeString": "bytes32"
									},
									"typeName": {
										"id": 9548,
										"name": "bytes32",
										"nodeType": "ElementaryTypeName",
										"src": "951:7:23",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"value": {
										"arguments": [
											{
												"hexValue": "41444d494e5f524f4c45",
												"id": 9550,
												"isConstant": false,
												"isLValue": false,
												"isPure": true,
												"kind": "string",
												"lValueRequested": false,
												"nodeType": "Literal",
												"src": "998:12:23",
												"typeDescriptions": {
													"typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775",
													"typeString": "literal_string \"ADMIN_ROLE\""
												},
												"value": "ADMIN_ROLE"
											}
										],
										"expression": {
											"argumentTypes": [
												{
													"typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775",
													"typeString": "literal_string \"ADMIN_ROLE\""
												}
											],
											"id": 9549,
											"name": "keccak256",
											"nodeType": "Identifier",
											"overloadedDeclarations": [],
											"referencedDeclaration": 4294967288,
											"src": "988:9:23",
											"typeDescriptions": {
												"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
												"typeString": "function (bytes memory) pure returns (bytes32)"
											}
										},
										"id": 9551,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "functionCall",
										"lValueRequested": false,
										"nameLocations": [],
										"names": [],
										"nodeType": "FunctionCall",
										"src": "988:23:23",
										"tryCall": false,
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 9554,
									"mutability": "mutable",
									"name": "_ticketIds",
									"nameLocation": "1036:10:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1020:26:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 9553,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "1020:7:23",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 9557,
									"mutability": "mutable",
									"name": "royaltyValue",
									"nameLocation": "1070:12:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1054:34:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint96",
										"typeString": "uint96"
									},
									"typeName": {
										"id": 9555,
										"name": "uint96",
										"nodeType": "ElementaryTypeName",
										"src": "1054:6:23",
										"typeDescriptions": {
											"typeIdentifier": "t_uint96",
											"typeString": "uint96"
										}
									},
									"value": {
										"hexValue": "323030",
										"id": 9556,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "1085:3:23",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_200_by_1",
											"typeString": "int_const 200"
										},
										"value": "200"
									},
									"visibility": "internal"
								},
								{
									"constant": true,
									"id": 9560,
									"mutability": "constant",
									"name": "_INTERFACE_ID_ERC2981",
									"nameLocation": "1117:21:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1093:58:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes4",
										"typeString": "bytes4"
									},
									"typeName": {
										"id": 9558,
										"name": "bytes4",
										"nodeType": "ElementaryTypeName",
										"src": "1093:6:23",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes4",
											"typeString": "bytes4"
										}
									},
									"value": {
										"hexValue": "30783261353532303561",
										"id": 9559,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "1141:10:23",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_710221914_by_1",
											"typeString": "int_const 710221914"
										},
										"value": "0x2a55205a"
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"functionSelector": "b4c24af7",
									"id": 9562,
									"mutability": "mutable",
									"name": "tixSellpaymentSplitter",
									"nameLocation": "1183:22:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1160:45:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address_payable",
										"typeString": "address payable"
									},
									"typeName": {
										"id": 9561,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "1160:15:23",
										"stateMutability": "payable",
										"typeDescriptions": {
											"typeIdentifier": "t_address_payable",
											"typeString": "address payable"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "f074ec5a",
									"id": 9564,
									"mutability": "mutable",
									"name": "resellPaiementSplitter",
									"nameLocation": "1233:22:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1210:45:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address_payable",
										"typeString": "address payable"
									},
									"typeName": {
										"id": 9563,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "1210:15:23",
										"stateMutability": "payable",
										"typeDescriptions": {
											"typeIdentifier": "t_address_payable",
											"typeString": "address payable"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "dc40da5c",
									"id": 9566,
									"mutability": "mutable",
									"name": "organizerPaymentSplitter",
									"nameLocation": "1283:24:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1260:47:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address_payable",
										"typeString": "address payable"
									},
									"typeName": {
										"id": 9565,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "1260:15:23",
										"stateMutability": "payable",
										"typeDescriptions": {
											"typeIdentifier": "t_address_payable",
											"typeString": "address payable"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 9569,
									"mutability": "mutable",
									"name": "dataFeed",
									"nameLocation": "1347:8:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1316:39:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
										"typeString": "contract AggregatorV3Interface"
									},
									"typeName": {
										"id": 9568,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 9567,
											"name": "AggregatorV3Interface",
											"nameLocations": [
												"1316:21:23"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 45,
											"src": "1316:21:23"
										},
										"referencedDeclaration": 45,
										"src": "1316:21:23",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
											"typeString": "contract AggregatorV3Interface"
										}
									},
									"visibility": "internal"
								},
								{
									"constant": false,
									"id": 9572,
									"mutability": "mutable",
									"name": "dataFeedMatic",
									"nameLocation": "1391:13:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1360:44:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
										"typeString": "contract AggregatorV3Interface"
									},
									"typeName": {
										"id": 9571,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 9570,
											"name": "AggregatorV3Interface",
											"nameLocations": [
												"1360:21:23"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 45,
											"src": "1360:21:23"
										},
										"referencedDeclaration": 45,
										"src": "1360:21:23",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
											"typeString": "contract AggregatorV3Interface"
										}
									},
									"visibility": "internal"
								},
								{
									"constant": false,
									"functionSelector": "e274fd24",
									"id": 9575,
									"mutability": "mutable",
									"name": "eventContract",
									"nameLocation": "1433:13:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1411:35:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_IEventContract_$11705",
										"typeString": "contract IEventContract"
									},
									"typeName": {
										"id": 9574,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 9573,
											"name": "IEventContract",
											"nameLocations": [
												"1411:14:23"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 11705,
											"src": "1411:14:23"
										},
										"referencedDeclaration": 11705,
										"src": "1411:14:23",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_IEventContract_$11705",
											"typeString": "contract IEventContract"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "c6458486",
									"id": 9578,
									"mutability": "mutable",
									"name": "ticketReservationContract",
									"nameLocation": "1486:25:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1452:59:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
										"typeString": "contract ITicketReservationContract"
									},
									"typeName": {
										"id": 9577,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 9576,
											"name": "ITicketReservationContract",
											"nameLocations": [
												"1452:26:23"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 11740,
											"src": "1452:26:23"
										},
										"referencedDeclaration": 11740,
										"src": "1452:26:23",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
											"typeString": "contract ITicketReservationContract"
										}
									},
									"visibility": "public"
								},
								{
									"canonicalName": "TicketContract.TokenInfo",
									"id": 9584,
									"members": [
										{
											"constant": false,
											"id": 9581,
											"mutability": "mutable",
											"name": "paytoken",
											"nameLocation": "1551:8:23",
											"nodeType": "VariableDeclaration",
											"scope": 9584,
											"src": "1544:15:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_contract$_IERC20_$807",
												"typeString": "contract IERC20"
											},
											"typeName": {
												"id": 9580,
												"nodeType": "UserDefinedTypeName",
												"pathNode": {
													"id": 9579,
													"name": "IERC20",
													"nameLocations": [
														"1544:6:23"
													],
													"nodeType": "IdentifierPath",
													"referencedDeclaration": 807,
													"src": "1544:6:23"
												},
												"referencedDeclaration": 807,
												"src": "1544:6:23",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9583,
											"mutability": "mutable",
											"name": "exists",
											"nameLocation": "1574:6:23",
											"nodeType": "VariableDeclaration",
											"scope": 9584,
											"src": "1569:11:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 9582,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1569:4:23",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "TokenInfo",
									"nameLocation": "1524:9:23",
									"nodeType": "StructDefinition",
									"scope": 11013,
									"src": "1517:70:23",
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "26c91cad",
									"id": 9588,
									"mutability": "mutable",
									"name": "AllowedCrypto",
									"nameLocation": "1611:13:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1592:32:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage",
										"typeString": "struct TicketContract.TokenInfo[]"
									},
									"typeName": {
										"baseType": {
											"id": 9586,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 9585,
												"name": "TokenInfo",
												"nameLocations": [
													"1592:9:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9584,
												"src": "1592:9:23"
											},
											"referencedDeclaration": 9584,
											"src": "1592:9:23",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_TokenInfo_$9584_storage_ptr",
												"typeString": "struct TicketContract.TokenInfo"
											}
										},
										"id": 9587,
										"nodeType": "ArrayTypeName",
										"src": "1592:11:23",
										"typeDescriptions": {
											"typeIdentifier": "t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage_ptr",
											"typeString": "struct TicketContract.TokenInfo[]"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 9591,
									"mutability": "mutable",
									"name": "nftTemplateContract",
									"nameLocation": "1659:19:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1631:47:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
										"typeString": "contract ITixSellNftTemplateContract"
									},
									"typeName": {
										"id": 9590,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 9589,
											"name": "ITixSellNftTemplateContract",
											"nameLocations": [
												"1631:27:23"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 11790,
											"src": "1631:27:23"
										},
										"referencedDeclaration": 11790,
										"src": "1631:27:23",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
											"typeString": "contract ITixSellNftTemplateContract"
										}
									},
									"visibility": "internal"
								},
								{
									"canonicalName": "TicketContract.Ticket",
									"id": 9608,
									"members": [
										{
											"constant": false,
											"id": 9593,
											"mutability": "mutable",
											"name": "ticketId",
											"nameLocation": "1719:8:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1711:16:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 9592,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1711:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9595,
											"mutability": "mutable",
											"name": "ticketTypeId",
											"nameLocation": "1745:12:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1737:20:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 9594,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1737:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9597,
											"mutability": "mutable",
											"name": "owner",
											"nameLocation": "1775:5:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1767:13:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 9596,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "1767:7:23",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9599,
											"mutability": "mutable",
											"name": "hashedTicket",
											"nameLocation": "1798:12:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1790:20:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bytes32",
												"typeString": "bytes32"
											},
											"typeName": {
												"id": 9598,
												"name": "bytes32",
												"nodeType": "ElementaryTypeName",
												"src": "1790:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9601,
											"mutability": "mutable",
											"name": "pricePaid",
											"nameLocation": "1879:9:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1871:17:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 9600,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1871:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9603,
											"mutability": "mutable",
											"name": "purchasedDate",
											"nameLocation": "1906:13:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1898:21:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 9602,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1898:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9605,
											"mutability": "mutable",
											"name": "used",
											"nameLocation": "1934:4:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1929:9:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 9604,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1929:4:23",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 9607,
											"mutability": "mutable",
											"name": "exists",
											"nameLocation": "1953:6:23",
											"nodeType": "VariableDeclaration",
											"scope": 9608,
											"src": "1948:11:23",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 9606,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1948:4:23",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "Ticket",
									"nameLocation": "1694:6:23",
									"nodeType": "StructDefinition",
									"scope": 11013,
									"src": "1687:279:23",
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "50b44712",
									"id": 9613,
									"mutability": "mutable",
									"name": "tickets",
									"nameLocation": "2027:7:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "1993:41:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
										"typeString": "mapping(uint256 => struct TicketContract.Ticket)"
									},
									"typeName": {
										"id": 9612,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 9609,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "2001:7:23",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "1993:26:23",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
											"typeString": "mapping(uint256 => struct TicketContract.Ticket)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 9611,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 9610,
												"name": "Ticket",
												"nameLocations": [
													"2012:6:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9608,
												"src": "2012:6:23"
											},
											"referencedDeclaration": 9608,
											"src": "2012:6:23",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
												"typeString": "struct TicketContract.Ticket"
											}
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "45a986c9",
									"id": 9617,
									"mutability": "mutable",
									"name": "ticketSpecificUri",
									"nameLocation": "2074:17:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "2040:51:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
										"typeString": "mapping(uint256 => string)"
									},
									"typeName": {
										"id": 9616,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 9614,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "2048:7:23",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "2040:26:23",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
											"typeString": "mapping(uint256 => string)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 9615,
											"name": "string",
											"nodeType": "ElementaryTypeName",
											"src": "2059:6:23",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											}
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "d7ff31e7",
									"id": 9621,
									"mutability": "mutable",
									"name": "ticketTypesForTicket",
									"nameLocation": "2133:20:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "2098:55:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
										"typeString": "mapping(uint256 => uint256)"
									},
									"typeName": {
										"id": 9620,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 9618,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "2106:7:23",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										},
										"nodeType": "Mapping",
										"src": "2098:27:23",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
											"typeString": "mapping(uint256 => uint256)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 9619,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "2117:7:23",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"functionSelector": "d56d2e60",
									"id": 9627,
									"mutability": "mutable",
									"name": "nbTicketForUserAndTicketTypes",
									"nameLocation": "2214:29:23",
									"nodeType": "VariableDeclaration",
									"scope": 11013,
									"src": "2159:84:23",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
										"typeString": "mapping(address => mapping(uint256 => uint256))"
									},
									"typeName": {
										"id": 9626,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 9622,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "2167:7:23",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "2159:47:23",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
											"typeString": "mapping(address => mapping(uint256 => uint256))"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 9625,
											"keyName": "",
											"keyNameLocation": "-1:-1:-1",
											"keyType": {
												"id": 9623,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "2186:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"nodeType": "Mapping",
											"src": "2178:27:23",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
												"typeString": "mapping(uint256 => uint256)"
											},
											"valueName": "",
											"valueNameLocation": "-1:-1:-1",
											"valueType": {
												"id": 9624,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "2197:7:23",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											}
										}
									},
									"visibility": "public"
								},
								{
									"anonymous": false,
									"eventSelector": "756915dc79fbe0544cde2132b389579561b584214b5ba2644e80d0bbb565047c",
									"id": 9635,
									"name": "NewTicket",
									"nameLocation": "2274:9:23",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 9634,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9629,
												"indexed": false,
												"mutability": "mutable",
												"name": "ticketTypeId",
												"nameLocation": "2292:12:23",
												"nodeType": "VariableDeclaration",
												"scope": 9635,
												"src": "2284:20:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9628,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2284:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9631,
												"indexed": false,
												"mutability": "mutable",
												"name": "ticketId",
												"nameLocation": "2314:8:23",
												"nodeType": "VariableDeclaration",
												"scope": 9635,
												"src": "2306:16:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9630,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2306:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9633,
												"indexed": false,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "2331:5:23",
												"nodeType": "VariableDeclaration",
												"scope": 9635,
												"src": "2323:13:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9632,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2323:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2283:54:23"
									},
									"src": "2268:70:23"
								},
								{
									"body": {
										"id": 9647,
										"nodeType": "Block",
										"src": "2413:118:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 9639,
																	"name": "ADMIN_ROLE",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9552,
																	"src": "2451:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes32",
																		"typeString": "bytes32"
																	}
																},
																{
																	"expression": {
																		"id": 9640,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "2463:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 9641,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "2467:6:23",
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "2463:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes32",
																		"typeString": "bytes32"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 9638,
																"name": "hasRole",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 126,
																"src": "2443:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
																	"typeString": "function (bytes32,address) view returns (bool)"
																}
															},
															"id": 9642,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2443:31:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4f6e6c7920666f756e646572732063616e20646f2074686174",
															"id": 9643,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2476:27:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_083130a1c811f8f38ea752d5aeca0a3a09e5605507a95f471ac2151dc540367f",
																"typeString": "literal_string \"Only founders can do that\""
															},
															"value": "Only founders can do that"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_083130a1c811f8f38ea752d5aeca0a3a09e5605507a95f471ac2151dc540367f",
																"typeString": "literal_string \"Only founders can do that\""
															}
														],
														"id": 9637,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "2423:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 9644,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2423:90:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9645,
												"nodeType": "ExpressionStatement",
												"src": "2423:90:23"
											},
											{
												"id": 9646,
												"nodeType": "PlaceholderStatement",
												"src": "2523:1:23"
											}
										]
									},
									"id": 9648,
									"name": "onlyFounders",
									"nameLocation": "2398:12:23",
									"nodeType": "ModifierDefinition",
									"parameters": {
										"id": 9636,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2410:2:23"
									},
									"src": "2389:142:23",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9666,
										"nodeType": "Block",
										"src": "2562:121:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"id": 9661,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 9655,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 9651,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "2581:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 9652,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "2585:6:23",
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "2581:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"id": 9653,
																		"name": "owner",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 492,
																		"src": "2595:5:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																			"typeString": "function () view returns (address)"
																		}
																	},
																	"id": 9654,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2595:7:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "2581:21:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "||",
															"rightExpression": {
																"arguments": [
																	{
																		"id": 9657,
																		"name": "ADMIN_ROLE",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9552,
																		"src": "2614:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	},
																	{
																		"expression": {
																			"id": 9658,
																			"name": "msg",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967281,
																			"src": "2626:3:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_magic_message",
																				"typeString": "msg"
																			}
																		},
																		"id": 9659,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "2630:6:23",
																		"memberName": "sender",
																		"nodeType": "MemberAccess",
																		"src": "2626:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 9656,
																	"name": "hasRole",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 126,
																	"src": "2606:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
																		"typeString": "function (bytes32,address) view returns (bool)"
																	}
																},
																"id": 9660,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2606:31:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"src": "2581:56:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4f6e6c792061646d696e732063616e20646f2074686174",
															"id": 9662,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2639:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c2b5321dbaff8d759739f3d5238ce99bc63f86615a3e656c6fc200f52a871e17",
																"typeString": "literal_string \"Only admins can do that\""
															},
															"value": "Only admins can do that"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_c2b5321dbaff8d759739f3d5238ce99bc63f86615a3e656c6fc200f52a871e17",
																"typeString": "literal_string \"Only admins can do that\""
															}
														],
														"id": 9650,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "2573:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 9663,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2573:92:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9664,
												"nodeType": "ExpressionStatement",
												"src": "2573:92:23"
											},
											{
												"id": 9665,
												"nodeType": "PlaceholderStatement",
												"src": "2675:1:23"
											}
										]
									},
									"id": 9667,
									"name": "onlyAdmin",
									"nameLocation": "2550:9:23",
									"nodeType": "ModifierDefinition",
									"parameters": {
										"id": 9649,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2559:2:23"
									},
									"src": "2541:142:23",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9680,
										"nodeType": "Block",
										"src": "2745:268:23",
										"statements": [
											{
												"assignments": [
													null,
													9673,
													null,
													null,
													null
												],
												"declarations": [
													null,
													{
														"constant": false,
														"id": 9673,
														"mutability": "mutable",
														"name": "answer",
														"nameLocation": "2834:6:23",
														"nodeType": "VariableDeclaration",
														"scope": 9680,
														"src": "2830:10:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"typeName": {
															"id": 9672,
															"name": "int",
															"nodeType": "ElementaryTypeName",
															"src": "2830:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"visibility": "internal"
													},
													null,
													null,
													null
												],
												"id": 9677,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 9674,
															"name": "dataFeed",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9569,
															"src": "2957:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
																"typeString": "contract AggregatorV3Interface"
															}
														},
														"id": 9675,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "2966:15:23",
														"memberName": "latestRoundData",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 44,
														"src": "2957:24:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
															"typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)"
														}
													},
													"id": 9676,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2957:26:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
														"typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2782:201:23"
											},
											{
												"expression": {
													"id": 9678,
													"name": "answer",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9673,
													"src": "3000:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"functionReturnParameters": 9671,
												"id": 9679,
												"nodeType": "Return",
												"src": "2993:13:23"
											}
										]
									},
									"functionSelector": "ab757d61",
									"id": 9681,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getLatestData",
									"nameLocation": "2703:13:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9668,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2716:2:23"
									},
									"returnParameters": {
										"id": 9671,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9670,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9681,
												"src": "2740:3:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 9669,
													"name": "int",
													"nodeType": "ElementaryTypeName",
													"src": "2740:3:23",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2739:5:23"
									},
									"scope": 11013,
									"src": "2694:319:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9694,
										"nodeType": "Block",
										"src": "3076:247:23",
										"statements": [
											{
												"assignments": [
													null,
													9687,
													null,
													null,
													null
												],
												"declarations": [
													null,
													{
														"constant": false,
														"id": 9687,
														"mutability": "mutable",
														"name": "answer",
														"nameLocation": "3139:6:23",
														"nodeType": "VariableDeclaration",
														"scope": 9694,
														"src": "3135:10:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"typeName": {
															"id": 9686,
															"name": "int",
															"nodeType": "ElementaryTypeName",
															"src": "3135:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"visibility": "internal"
													},
													null,
													null,
													null
												],
												"id": 9691,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 9688,
															"name": "dataFeedMatic",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9572,
															"src": "3262:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
																"typeString": "contract AggregatorV3Interface"
															}
														},
														"id": 9689,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3276:15:23",
														"memberName": "latestRoundData",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 44,
														"src": "3262:29:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
															"typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)"
														}
													},
													"id": 9690,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3262:31:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
														"typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3087:206:23"
											},
											{
												"expression": {
													"id": 9692,
													"name": "answer",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9687,
													"src": "3310:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"functionReturnParameters": 9685,
												"id": 9693,
												"nodeType": "Return",
												"src": "3303:13:23"
											}
										]
									},
									"functionSelector": "871a1f2d",
									"id": 9695,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getLatestDataMaticUsd",
									"nameLocation": "3028:21:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9682,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3049:2:23"
									},
									"returnParameters": {
										"id": 9685,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9684,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9695,
												"src": "3072:3:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 9683,
													"name": "int",
													"nodeType": "ElementaryTypeName",
													"src": "3072:3:23",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3071:5:23"
									},
									"scope": 11013,
									"src": "3019:304:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9852,
										"nodeType": "Block",
										"src": "3865:1834:23",
										"statements": [
											{
												"body": {
													"id": 9763,
													"nodeType": "Block",
													"src": "3929:126:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 9750,
																		"name": "ADMIN_ROLE",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9552,
																		"src": "3964:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	},
																	{
																		"baseExpression": {
																			"id": 9751,
																			"name": "_admins",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9700,
																			"src": "3976:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																				"typeString": "address[] memory"
																			}
																		},
																		"id": 9753,
																		"indexExpression": {
																			"id": 9752,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9739,
																			"src": "3984:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "3976:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 9749,
																	"name": "_grantRole",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 302,
																	"src": "3953:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
																		"typeString": "function (bytes32,address) returns (bool)"
																	}
																},
																"id": 9754,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3953:34:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 9755,
															"nodeType": "ExpressionStatement",
															"src": "3953:34:23"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 9757,
																		"name": "DEFAULT_ADMIN_ROLE",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 75,
																		"src": "4013:18:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		}
																	},
																	{
																		"baseExpression": {
																			"id": 9758,
																			"name": "_admins",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9700,
																			"src": "4033:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																				"typeString": "address[] memory"
																			}
																		},
																		"id": 9760,
																		"indexExpression": {
																			"id": 9759,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9739,
																			"src": "4041:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "4033:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes32",
																			"typeString": "bytes32"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 9756,
																	"name": "_grantRole",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 302,
																	"src": "4002:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
																		"typeString": "function (bytes32,address) returns (bool)"
																	}
																},
																"id": 9761,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4002:42:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 9762,
															"nodeType": "ExpressionStatement",
															"src": "4002:42:23"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 9745,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 9742,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9739,
														"src": "3904:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 9743,
															"name": "_admins",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9700,
															"src": "3908:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																"typeString": "address[] memory"
															}
														},
														"id": 9744,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3916:6:23",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "3908:14:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "3904:18:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 9764,
												"initializationExpression": {
													"assignments": [
														9739
													],
													"declarations": [
														{
															"constant": false,
															"id": 9739,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "3897:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 9764,
															"src": "3889:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 9738,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "3889:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 9741,
													"initialValue": {
														"hexValue": "30",
														"id": 9740,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "3901:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "3889:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 9747,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": true,
														"src": "3924:3:23",
														"subExpression": {
															"id": 9746,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9739,
															"src": "3926:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 9748,
													"nodeType": "ExpressionStatement",
													"src": "3924:3:23"
												},
												"nodeType": "ForStatement",
												"src": "3884:171:23"
											},
											{
												"expression": {
													"id": 9770,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9765,
														"name": "resellPaiementSplitter",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9564,
														"src": "4064:22:23",
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9768,
																"name": "_resellPaiementSplitter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9706,
																"src": "4097:23:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9767,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "4089:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_payable_$",
																"typeString": "type(address payable)"
															},
															"typeName": {
																"id": 9766,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "4089:8:23",
																"stateMutability": "payable",
																"typeDescriptions": {}
															}
														},
														"id": 9769,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4089:32:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"src": "4064:57:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"id": 9771,
												"nodeType": "ExpressionStatement",
												"src": "4064:57:23"
											},
											{
												"expression": {
													"id": 9777,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9772,
														"name": "tixSellpaymentSplitter",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9562,
														"src": "4131:22:23",
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9775,
																"name": "_tixSellpaymentSplitter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9702,
																"src": "4164:23:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9774,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "4156:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_payable_$",
																"typeString": "type(address payable)"
															},
															"typeName": {
																"id": 9773,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "4156:8:23",
																"stateMutability": "payable",
																"typeDescriptions": {}
															}
														},
														"id": 9776,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4156:32:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"src": "4131:57:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"id": 9778,
												"nodeType": "ExpressionStatement",
												"src": "4131:57:23"
											},
											{
												"expression": {
													"id": 9784,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9779,
														"name": "organizerPaymentSplitter",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9566,
														"src": "4198:24:23",
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9782,
																"name": "_organizerEventPaymentSplitter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9704,
																"src": "4233:30:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9781,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "4225:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_payable_$",
																"typeString": "type(address payable)"
															},
															"typeName": {
																"id": 9780,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "4225:8:23",
																"stateMutability": "payable",
																"typeDescriptions": {}
															}
														},
														"id": 9783,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4225:39:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"src": "4198:66:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"id": 9785,
												"nodeType": "ExpressionStatement",
												"src": "4198:66:23"
											},
											{
												"expression": {
													"id": 9790,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9786,
														"name": "dataFeed",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9569,
														"src": "4275:8:23",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
															"typeString": "contract AggregatorV3Interface"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9788,
																"name": "_dataFeedEURUSD",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9708,
																"src": "4321:15:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9787,
															"name": "AggregatorV3Interface",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 45,
															"src": "4286:21:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_AggregatorV3Interface_$45_$",
																"typeString": "type(contract AggregatorV3Interface)"
															}
														},
														"id": 9789,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4286:60:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
															"typeString": "contract AggregatorV3Interface"
														}
													},
													"src": "4275:71:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
														"typeString": "contract AggregatorV3Interface"
													}
												},
												"id": 9791,
												"nodeType": "ExpressionStatement",
												"src": "4275:71:23"
											},
											{
												"expression": {
													"id": 9796,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9792,
														"name": "dataFeedMatic",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9572,
														"src": "4447:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
															"typeString": "contract AggregatorV3Interface"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"hexValue": "307864304435653344423434444530354539463239344242306133624545614630333044453234416461",
																"id": 9794,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4499:42:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"value": "0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9793,
															"name": "AggregatorV3Interface",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 45,
															"src": "4464:21:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_AggregatorV3Interface_$45_$",
																"typeString": "type(contract AggregatorV3Interface)"
															}
														},
														"id": 9795,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4464:87:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
															"typeString": "contract AggregatorV3Interface"
														}
													},
													"src": "4447:104:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_AggregatorV3Interface_$45",
														"typeString": "contract AggregatorV3Interface"
													}
												},
												"id": 9797,
												"nodeType": "ExpressionStatement",
												"src": "4447:104:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "307832463762393738333746324431346241326544336134423232383265323539313236413962383438",
																	"id": 9800,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4825:42:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"value": "0x2F7b97837F2D14bA2eD3a4B2282e259126A9b848"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 9799,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 807,
																"src": "4818:6:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$807_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 9801,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4818:50:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														],
														"id": 9798,
														"name": "addCurrency",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9869,
														"src": "4806:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$returns$__$",
															"typeString": "function (contract IERC20)"
														}
													},
													"id": 9802,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4806:63:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9803,
												"nodeType": "ExpressionStatement",
												"src": "4806:63:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "307839393939663746656135393338664433623145323641313263336632666230323465313934663937",
																	"id": 9806,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4899:42:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"value": "0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 9805,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 807,
																"src": "4892:6:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$807_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 9807,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4892:50:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														],
														"id": 9804,
														"name": "addCurrency",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9869,
														"src": "4880:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$returns$__$",
															"typeString": "function (contract IERC20)"
														}
													},
													"id": 9808,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4880:63:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9809,
												"nodeType": "ExpressionStatement",
												"src": "4880:63:23"
											},
											{
												"expression": {
													"id": 9814,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9810,
														"name": "eventContract",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9575,
														"src": "4963:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_IEventContract_$11705",
															"typeString": "contract IEventContract"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9812,
																"name": "_eventContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9710,
																"src": "4994:14:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9811,
															"name": "IEventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11705,
															"src": "4979:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_IEventContract_$11705_$",
																"typeString": "type(contract IEventContract)"
															}
														},
														"id": 9813,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4979:30:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_IEventContract_$11705",
															"typeString": "contract IEventContract"
														}
													},
													"src": "4963:46:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IEventContract_$11705",
														"typeString": "contract IEventContract"
													}
												},
												"id": 9815,
												"nodeType": "ExpressionStatement",
												"src": "4963:46:23"
											},
											{
												"expression": {
													"id": 9820,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9816,
														"name": "nftTemplateContract",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9591,
														"src": "5019:19:23",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
															"typeString": "contract ITixSellNftTemplateContract"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9818,
																"name": "_nftTemplateContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9714,
																"src": "5069:20:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9817,
															"name": "ITixSellNftTemplateContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11790,
															"src": "5041:27:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_ITixSellNftTemplateContract_$11790_$",
																"typeString": "type(contract ITixSellNftTemplateContract)"
															}
														},
														"id": 9819,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "5041:49:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
															"typeString": "contract ITixSellNftTemplateContract"
														}
													},
													"src": "5019:71:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
														"typeString": "contract ITixSellNftTemplateContract"
													}
												},
												"id": 9821,
												"nodeType": "ExpressionStatement",
												"src": "5019:71:23"
											},
											{
												"assignments": [
													9824
												],
												"declarations": [
													{
														"constant": false,
														"id": 9824,
														"mutability": "mutable",
														"name": "ticketReservationFactory",
														"nameLocation": "5163:24:23",
														"nodeType": "VariableDeclaration",
														"scope": 9852,
														"src": "5137:50:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_ITicketReservationFactory_$11657",
															"typeString": "contract ITicketReservationFactory"
														},
														"typeName": {
															"id": 9823,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 9822,
																"name": "ITicketReservationFactory",
																"nameLocations": [
																	"5137:25:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11657,
																"src": "5137:25:23"
															},
															"referencedDeclaration": 11657,
															"src": "5137:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationFactory_$11657",
																"typeString": "contract ITicketReservationFactory"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9828,
												"initialValue": {
													"arguments": [
														{
															"id": 9826,
															"name": "_ticketReservationFactoryAddress",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9716,
															"src": "5216:32:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 9825,
														"name": "ITicketReservationFactory",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11657,
														"src": "5190:25:23",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_contract$_ITicketReservationFactory_$11657_$",
															"typeString": "type(contract ITicketReservationFactory)"
														}
													},
													"id": 9827,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5190:59:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_ITicketReservationFactory_$11657",
														"typeString": "contract ITicketReservationFactory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5137:112:23"
											},
											{
												"assignments": [
													9830
												],
												"declarations": [
													{
														"constant": false,
														"id": 9830,
														"mutability": "mutable",
														"name": "ticketReservationContractAddress",
														"nameLocation": "5267:32:23",
														"nodeType": "VariableDeclaration",
														"scope": 9852,
														"src": "5259:40:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 9829,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "5259:7:23",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9836,
												"initialValue": {
													"arguments": [
														{
															"id": 9833,
															"name": "_admins",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9700,
															"src": "5359:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																"typeString": "address[] memory"
															}
														},
														{
															"id": 9834,
															"name": "_eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9710,
															"src": "5368:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																"typeString": "address[] memory"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"id": 9831,
															"name": "ticketReservationFactory",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9824,
															"src": "5302:24:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationFactory_$11657",
																"typeString": "contract ITicketReservationFactory"
															}
														},
														"id": 9832,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "5327:31:23",
														"memberName": "deployTicketReservationContract",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11656,
														"src": "5302:56:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$_t_address_$",
															"typeString": "function (address[] memory,address) external returns (address)"
														}
													},
													"id": 9835,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5302:81:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5259:124:23"
											},
											{
												"expression": {
													"id": 9841,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9837,
														"name": "ticketReservationContract",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9578,
														"src": "5393:25:23",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
															"typeString": "contract ITicketReservationContract"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9839,
																"name": "ticketReservationContractAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9830,
																"src": "5448:32:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 9838,
															"name": "ITicketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11740,
															"src": "5421:26:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_ITicketReservationContract_$11740_$",
																"typeString": "type(contract ITicketReservationContract)"
															}
														},
														"id": 9840,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "5421:60:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
															"typeString": "contract ITicketReservationContract"
														}
													},
													"src": "5393:88:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
														"typeString": "contract ITicketReservationContract"
													}
												},
												"id": 9842,
												"nodeType": "ExpressionStatement",
												"src": "5393:88:23"
											},
											{
												"assignments": [
													9844
												],
												"declarations": [
													{
														"constant": false,
														"id": 9844,
														"mutability": "mutable",
														"name": "finalRoyalty",
														"nameLocation": "5604:12:23",
														"nodeType": "VariableDeclaration",
														"scope": 9852,
														"src": "5597:19:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														},
														"typeName": {
															"id": 9843,
															"name": "uint96",
															"nodeType": "ElementaryTypeName",
															"src": "5597:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint96",
																"typeString": "uint96"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9846,
												"initialValue": {
													"id": 9845,
													"name": "royalty",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9718,
													"src": "5619:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5597:29:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 9848,
															"name": "resellPaiementSplitter",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9564,
															"src": "5655:22:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														},
														{
															"id": 9849,
															"name": "finalRoyalty",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9844,
															"src": "5679:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint96",
																"typeString": "uint96"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															},
															{
																"typeIdentifier": "t_uint96",
																"typeString": "uint96"
															}
														],
														"id": 9847,
														"name": "_setDefaultRoyalty",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2486,
														"src": "5636:18:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint96_$returns$__$",
															"typeString": "function (address,uint96)"
														}
													},
													"id": 9850,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5636:56:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9851,
												"nodeType": "ExpressionStatement",
												"src": "5636:56:23"
											}
										]
									},
									"id": 9853,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [
										{
											"arguments": [
												{
													"id": 9721,
													"name": "initialOwner",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9697,
													"src": "3757:12:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												}
											],
											"id": 9722,
											"kind": "baseConstructorSpecifier",
											"modifierName": {
												"id": 9720,
												"name": "Ownable",
												"nameLocations": [
													"3749:7:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 572,
												"src": "3749:7:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "3749:21:23"
										},
										{
											"arguments": [
												{
													"arguments": [
														{
															"id": 9727,
															"name": "_eventName",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9712,
															"src": "3793:10:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														{
															"hexValue": "2062792053656c6c546978",
															"id": 9728,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3804:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_53482a84613d7bd668eb26353b9046573fd9cf5e7668bceb4ab75ca0e30e2548",
																"typeString": "literal_string \" by SellTix\""
															},
															"value": " by SellTix"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															},
															{
																"typeIdentifier": "t_stringliteral_53482a84613d7bd668eb26353b9046573fd9cf5e7668bceb4ab75ca0e30e2548",
																"typeString": "literal_string \" by SellTix\""
															}
														],
														"expression": {
															"id": 9725,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "3779:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_string_storage_ptr_$",
																"typeString": "type(string storage pointer)"
															},
															"typeName": {
																"id": 9724,
																"name": "string",
																"nodeType": "ElementaryTypeName",
																"src": "3779:6:23",
																"typeDescriptions": {}
															}
														},
														"id": 9726,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3786:6:23",
														"memberName": "concat",
														"nodeType": "MemberAccess",
														"src": "3779:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$",
															"typeString": "function () pure returns (string memory)"
														}
													},
													"id": 9729,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3779:39:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												{
													"arguments": [
														{
															"id": 9733,
															"name": "_eventName",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9712,
															"src": "3834:10:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														{
															"hexValue": "2053656c6c5469785469636b657473",
															"id": 9734,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3845:17:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d072dd5d0e213fbca71bdb407e2222d472943a813386bb04b047d7a19ef775",
																"typeString": "literal_string \" SellTixTickets\""
															},
															"value": " SellTixTickets"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															},
															{
																"typeIdentifier": "t_stringliteral_c5d072dd5d0e213fbca71bdb407e2222d472943a813386bb04b047d7a19ef775",
																"typeString": "literal_string \" SellTixTickets\""
															}
														],
														"expression": {
															"id": 9731,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "3820:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_string_storage_ptr_$",
																"typeString": "type(string storage pointer)"
															},
															"typeName": {
																"id": 9730,
																"name": "string",
																"nodeType": "ElementaryTypeName",
																"src": "3820:6:23",
																"typeDescriptions": {}
															}
														},
														"id": 9732,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3827:6:23",
														"memberName": "concat",
														"nodeType": "MemberAccess",
														"src": "3820:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$",
															"typeString": "function () pure returns (string memory)"
														}
													},
													"id": 9735,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3820:43:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												}
											],
											"id": 9736,
											"kind": "baseConstructorSpecifier",
											"modifierName": {
												"id": 9723,
												"name": "ERC721",
												"nameLocations": [
													"3772:6:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 2142,
												"src": "3772:6:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "3772:92:23"
										}
									],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9719,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9697,
												"mutability": "mutable",
												"name": "initialOwner",
												"nameLocation": "3347:12:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3339:20:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9696,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3339:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9700,
												"mutability": "mutable",
												"name": "_admins",
												"nameLocation": "3386:7:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3369:24:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
													"typeString": "address[]"
												},
												"typeName": {
													"baseType": {
														"id": 9698,
														"name": "address",
														"nodeType": "ElementaryTypeName",
														"src": "3369:7:23",
														"stateMutability": "nonpayable",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 9699,
													"nodeType": "ArrayTypeName",
													"src": "3369:9:23",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
														"typeString": "address[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9702,
												"mutability": "mutable",
												"name": "_tixSellpaymentSplitter",
												"nameLocation": "3411:23:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3403:31:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9701,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3403:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9704,
												"mutability": "mutable",
												"name": "_organizerEventPaymentSplitter",
												"nameLocation": "3452:30:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3444:38:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9703,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3444:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9706,
												"mutability": "mutable",
												"name": "_resellPaiementSplitter",
												"nameLocation": "3500:23:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3492:31:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9705,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3492:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9708,
												"mutability": "mutable",
												"name": "_dataFeedEURUSD",
												"nameLocation": "3541:15:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3533:23:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9707,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3533:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9710,
												"mutability": "mutable",
												"name": "_eventContract",
												"nameLocation": "3574:14:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3566:22:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9709,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3566:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9712,
												"mutability": "mutable",
												"name": "_eventName",
												"nameLocation": "3613:10:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3599:24:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9711,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "3599:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9714,
												"mutability": "mutable",
												"name": "_nftTemplateContract",
												"nameLocation": "3641:20:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3633:28:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9713,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3633:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9716,
												"mutability": "mutable",
												"name": "_ticketReservationFactoryAddress",
												"nameLocation": "3679:32:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3671:40:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9715,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3671:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9718,
												"mutability": "mutable",
												"name": "royalty",
												"nameLocation": "3728:7:23",
												"nodeType": "VariableDeclaration",
												"scope": 9853,
												"src": "3721:14:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 9717,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "3721:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3338:409:23"
									},
									"returnParameters": {
										"id": 9737,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3865:0:23"
									},
									"scope": 11013,
									"src": "3327:2372:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9868,
										"nodeType": "Block",
										"src": "5781:158:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 9863,
																	"name": "_paytoken",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9856,
																	"src": "5869:9:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																{
																	"hexValue": "74727565",
																	"id": 9864,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "bool",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5903:4:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"value": "true"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"id": 9862,
																"name": "TokenInfo",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9584,
																"src": "5831:9:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_struct$_TokenInfo_$9584_storage_ptr_$",
																	"typeString": "type(struct TicketContract.TokenInfo storage pointer)"
																}
															},
															"id": 9865,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "structConstructorCall",
															"lValueRequested": false,
															"nameLocations": [
																"5859:8:23",
																"5896:6:23"
															],
															"names": [
																"paytoken",
																"exists"
															],
															"nodeType": "FunctionCall",
															"src": "5831:91:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TokenInfo_$9584_memory_ptr",
																"typeString": "struct TicketContract.TokenInfo memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_struct$_TokenInfo_$9584_memory_ptr",
																"typeString": "struct TicketContract.TokenInfo memory"
															}
														],
														"expression": {
															"id": 9859,
															"name": "AllowedCrypto",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9588,
															"src": "5799:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage",
																"typeString": "struct TicketContract.TokenInfo storage ref[] storage ref"
															}
														},
														"id": 9861,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "5813:4:23",
														"memberName": "push",
														"nodeType": "MemberAccess",
														"src": "5799:18:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage_ptr_$_t_struct$_TokenInfo_$9584_storage_$returns$__$attached_to$_t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage_ptr_$",
															"typeString": "function (struct TicketContract.TokenInfo storage ref[] storage pointer,struct TicketContract.TokenInfo storage ref)"
														}
													},
													"id": 9866,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5799:133:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9867,
												"nodeType": "ExpressionStatement",
												"src": "5799:133:23"
											}
										]
									},
									"functionSelector": "8ab234b6",
									"id": 9869,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "addCurrency",
									"nameLocation": "5722:11:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9857,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9856,
												"mutability": "mutable",
												"name": "_paytoken",
												"nameLocation": "5750:9:23",
												"nodeType": "VariableDeclaration",
												"scope": 9869,
												"src": "5743:16:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 9855,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 9854,
														"name": "IERC20",
														"nameLocations": [
															"5743:6:23"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "5743:6:23"
													},
													"referencedDeclaration": 807,
													"src": "5743:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5733:40:23"
									},
									"returnParameters": {
										"id": 9858,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5781:0:23"
									},
									"scope": 11013,
									"src": "5713:226:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9880,
										"nodeType": "Block",
										"src": "6004:45:23",
										"statements": [
											{
												"expression": {
													"id": 9878,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 9876,
														"name": "royaltyValue",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9557,
														"src": "6014:12:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 9877,
														"name": "_newroyalty",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9871,
														"src": "6029:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"src": "6014:26:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"id": 9879,
												"nodeType": "ExpressionStatement",
												"src": "6014:26:23"
											}
										]
									},
									"functionSelector": "cac92669",
									"id": 9881,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 9874,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 9873,
												"name": "onlyFounders",
												"nameLocations": [
													"5991:12:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9648,
												"src": "5991:12:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "5991:12:23"
										}
									],
									"name": "setRoyalty",
									"nameLocation": "5953:10:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9872,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9871,
												"mutability": "mutable",
												"name": "_newroyalty",
												"nameLocation": "5971:11:23",
												"nodeType": "VariableDeclaration",
												"scope": 9881,
												"src": "5964:18:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 9870,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "5964:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5963:20:23"
									},
									"returnParameters": {
										"id": 9875,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6004:0:23"
									},
									"scope": 11013,
									"src": "5944:105:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9892,
										"nodeType": "Block",
										"src": "6467:45:23",
										"statements": [
											{
												"expression": {
													"expression": {
														"arguments": [
															{
																"id": 9888,
																"name": "this",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967268,
																"src": "6492:4:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_TicketContract_$11013",
																	"typeString": "contract TicketContract"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_contract$_TicketContract_$11013",
																	"typeString": "contract TicketContract"
																}
															],
															"id": 9887,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "6484:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 9886,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "6484:7:23",
																"typeDescriptions": {}
															}
														},
														"id": 9889,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "6484:13:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 9890,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "6498:7:23",
													"memberName": "balance",
													"nodeType": "MemberAccess",
													"src": "6484:21:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 9885,
												"id": 9891,
												"nodeType": "Return",
												"src": "6477:28:23"
											}
										]
									},
									"functionSelector": "12065fe0",
									"id": 9893,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getBalance",
									"nameLocation": "6424:10:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9882,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6434:2:23"
									},
									"returnParameters": {
										"id": 9885,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9884,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 9893,
												"src": "6458:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9883,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6458:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6457:9:23"
									},
									"scope": 11013,
									"src": "6415:97:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 9908,
										"nodeType": "Block",
										"src": "6602:49:23",
										"statements": [
											{
												"expression": {
													"id": 9906,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 9902,
															"name": "ticketSpecificUri",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9617,
															"src": "6612:17:23",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
																"typeString": "mapping(uint256 => string storage ref)"
															}
														},
														"id": 9904,
														"indexExpression": {
															"id": 9903,
															"name": "_tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9895,
															"src": "6630:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "6612:27:23",
														"typeDescriptions": {
															"typeIdentifier": "t_string_storage",
															"typeString": "string storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 9905,
														"name": "_uri",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9897,
														"src": "6640:4:23",
														"typeDescriptions": {
															"typeIdentifier": "t_string_calldata_ptr",
															"typeString": "string calldata"
														}
													},
													"src": "6612:32:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage",
														"typeString": "string storage ref"
													}
												},
												"id": 9907,
												"nodeType": "ExpressionStatement",
												"src": "6612:32:23"
											}
										]
									},
									"functionSelector": "6bb03a87",
									"id": 9909,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 9900,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 9899,
												"name": "onlyAdmin",
												"nameLocations": [
													"6592:9:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9667,
												"src": "6592:9:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "6592:9:23"
										}
									],
									"name": "setTicketURI",
									"nameLocation": "6530:12:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9898,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9895,
												"mutability": "mutable",
												"name": "_tokenId",
												"nameLocation": "6551:8:23",
												"nodeType": "VariableDeclaration",
												"scope": 9909,
												"src": "6543:16:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9894,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6543:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9897,
												"mutability": "mutable",
												"name": "_uri",
												"nameLocation": "6577:4:23",
												"nodeType": "VariableDeclaration",
												"scope": 9909,
												"src": "6561:20:23",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_string_calldata_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9896,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6561:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6542:40:23"
									},
									"returnParameters": {
										"id": 9901,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6602:0:23"
									},
									"scope": 11013,
									"src": "6521:130:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10012,
										"nodeType": "Block",
										"src": "6753:914:23",
										"statements": [
											{
												"assignments": [
													9919
												],
												"declarations": [
													{
														"constant": false,
														"id": 9919,
														"mutability": "mutable",
														"name": "tokenId",
														"nameLocation": "6771:7:23",
														"nodeType": "VariableDeclaration",
														"scope": 10012,
														"src": "6763:15:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 9918,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "6763:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9921,
												"initialValue": {
													"id": 9920,
													"name": "_ticketIds",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9554,
													"src": "6781:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "6763:28:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 9923,
															"name": "_to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9911,
															"src": "6811:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 9924,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9919,
															"src": "6816:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 9922,
														"name": "_safeMint",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															1764,
															1790
														],
														"referencedDeclaration": 1764,
														"src": "6801:9:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 9925,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6801:23:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9926,
												"nodeType": "ExpressionStatement",
												"src": "6801:23:23"
											},
											{
												"assignments": [
													9928
												],
												"declarations": [
													{
														"constant": false,
														"id": 9928,
														"mutability": "mutable",
														"name": "secret",
														"nameLocation": "6872:6:23",
														"nodeType": "VariableDeclaration",
														"scope": 10012,
														"src": "6858:20:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_string_memory_ptr",
															"typeString": "string"
														},
														"typeName": {
															"id": 9927,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "6858:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_storage_ptr",
																"typeString": "string"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9949,
												"initialValue": {
													"arguments": [
														{
															"arguments": [
																{
																	"expression": {
																		"arguments": [],
																		"expression": {
																			"argumentTypes": [],
																			"expression": {
																				"id": 9933,
																				"name": "eventContract",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 9575,
																				"src": "6905:13:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_contract$_IEventContract_$11705",
																					"typeString": "contract IEventContract"
																				}
																			},
																			"id": 9934,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberLocation": "6919:8:23",
																			"memberName": "getEvent",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 11671,
																			"src": "6905:22:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_external_view$__$returns$_t_struct$_Event_$11036_memory_ptr_$",
																				"typeString": "function () view external returns (struct TixSellEventLibrary.Event memory)"
																			}
																		},
																		"id": 9935,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "6905:24:23",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_Event_$11036_memory_ptr",
																			"typeString": "struct TixSellEventLibrary.Event memory"
																		}
																	},
																	"id": 9936,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "6930:2:23",
																	"memberName": "id",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 11020,
																	"src": "6905:27:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"hexValue": "3a",
																	"id": 9937,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6934:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c",
																		"typeString": "literal_string \":\""
																	},
																	"value": ":"
																},
																{
																	"arguments": [
																		{
																			"id": 9940,
																			"name": "_ticketTypeId",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9913,
																			"src": "6956:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"expression": {
																			"id": 9938,
																			"name": "Strings",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3136,
																			"src": "6939:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_Strings_$3136_$",
																				"typeString": "type(library Strings)"
																			}
																		},
																		"id": 9939,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "6947:8:23",
																		"memberName": "toString",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 2949,
																		"src": "6939:16:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
																			"typeString": "function (uint256) pure returns (string memory)"
																		}
																	},
																	"id": 9941,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "6939:31:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"hexValue": "3a",
																	"id": 9942,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6972:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c",
																		"typeString": "literal_string \":\""
																	},
																	"value": ":"
																},
																{
																	"arguments": [
																		{
																			"id": 9945,
																			"name": "tokenId",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9919,
																			"src": "6994:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"expression": {
																			"id": 9943,
																			"name": "Strings",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 3136,
																			"src": "6977:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_Strings_$3136_$",
																				"typeString": "type(library Strings)"
																			}
																		},
																		"id": 9944,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "6985:8:23",
																		"memberName": "toString",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 2949,
																		"src": "6977:16:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
																			"typeString": "function (uint256) pure returns (string memory)"
																		}
																	},
																	"id": 9946,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "6977:25:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c",
																		"typeString": "literal_string \":\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_stringliteral_96d280011b274d9410ea6c6fc28e2bb076b01d2fac329c49c4b29a719ec4650c",
																		"typeString": "literal_string \":\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9931,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6888:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9932,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberLocation": "6892:12:23",
																"memberName": "encodePacked",
																"nodeType": "MemberAccess",
																"src": "6888:16:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function () pure returns (bytes memory)"
																}
															},
															"id": 9947,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6888:115:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9930,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "ElementaryTypeNameExpression",
														"src": "6881:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_string_storage_ptr_$",
															"typeString": "type(string storage pointer)"
														},
														"typeName": {
															"id": 9929,
															"name": "string",
															"nodeType": "ElementaryTypeName",
															"src": "6881:6:23",
															"typeDescriptions": {}
														}
													},
													"id": 9948,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6881:123:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_string_memory_ptr",
														"typeString": "string memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "6858:146:23"
											},
											{
												"assignments": [
													9951
												],
												"declarations": [
													{
														"constant": false,
														"id": 9951,
														"mutability": "mutable",
														"name": "hashedCode",
														"nameLocation": "7022:10:23",
														"nodeType": "VariableDeclaration",
														"scope": 10012,
														"src": "7014:18:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"typeName": {
															"id": 9950,
															"name": "bytes32",
															"nodeType": "ElementaryTypeName",
															"src": "7014:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 9958,
												"initialValue": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 9955,
																	"name": "secret",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9928,
																	"src": "7048:6:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"id": 9954,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "7042:5:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																	"typeString": "type(bytes storage pointer)"
																},
																"typeName": {
																	"id": 9953,
																	"name": "bytes",
																	"nodeType": "ElementaryTypeName",
																	"src": "7042:5:23",
																	"typeDescriptions": {}
																}
															},
															"id": 9956,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7042:13:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9952,
														"name": "sha256",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 4294967274,
														"src": "7035:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
															"typeString": "function (bytes memory) pure returns (bytes32)"
														}
													},
													"id": 9957,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7035:21:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7014:42:23"
											},
											{
												"expression": {
													"id": 9973,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 9959,
															"name": "tickets",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9613,
															"src": "7067:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
																"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
															}
														},
														"id": 9961,
														"indexExpression": {
															"id": 9960,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9919,
															"src": "7075:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "7067:16:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Ticket_$9608_storage",
															"typeString": "struct TicketContract.Ticket storage ref"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 9963,
																"name": "tokenId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9919,
																"src": "7110:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															{
																"id": 9964,
																"name": "_ticketTypeId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9913,
																"src": "7135:13:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															{
																"id": 9965,
																"name": "_to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9911,
																"src": "7166:3:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 9966,
																"name": "hashedCode",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9951,
																"src": "7187:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															{
																"id": 9967,
																"name": "_pricePerTicket",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9915,
																"src": "7215:15:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															{
																"expression": {
																	"id": 9968,
																	"name": "block",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967292,
																	"src": "7248:5:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_block",
																		"typeString": "block"
																	}
																},
																"id": 9969,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "7254:9:23",
																"memberName": "timestamp",
																"nodeType": "MemberAccess",
																"src": "7248:15:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															{
																"hexValue": "66616c7365",
																"id": 9970,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7281:5:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "false"
															},
															{
																"hexValue": "74727565",
																"id": 9971,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "bool",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7304:4:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																"value": "true"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																},
																{
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															],
															"id": 9962,
															"name": "Ticket",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9608,
															"src": "7086:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_struct$_Ticket_$9608_storage_ptr_$",
																"typeString": "type(struct TicketContract.Ticket storage pointer)"
															}
														},
														"id": 9972,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "structConstructorCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "7086:236:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
															"typeString": "struct TicketContract.Ticket memory"
														}
													},
													"src": "7067:255:23",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Ticket_$9608_storage",
														"typeString": "struct TicketContract.Ticket storage ref"
													}
												},
												"id": 9974,
												"nodeType": "ExpressionStatement",
												"src": "7067:255:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 9978,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9913,
															"src": "7378:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 9979,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9919,
															"src": "7392:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 9975,
															"name": "eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9575,
															"src": "7336:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														},
														"id": 9977,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "7350:27:23",
														"memberName": "addTicketToListOfTicketType",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11697,
														"src": "7336:41:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (uint256,uint256) external"
														}
													},
													"id": 9980,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7336:64:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9981,
												"nodeType": "ExpressionStatement",
												"src": "7336:64:23"
											},
											{
												"expression": {
													"id": 9986,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 9982,
															"name": "ticketTypesForTicket",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9621,
															"src": "7414:20:23",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
																"typeString": "mapping(uint256 => uint256)"
															}
														},
														"id": 9984,
														"indexExpression": {
															"id": 9983,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9919,
															"src": "7435:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "7414:29:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 9985,
														"name": "_ticketTypeId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9913,
														"src": "7446:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "7414:45:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 9987,
												"nodeType": "ExpressionStatement",
												"src": "7414:45:23"
											},
											{
												"expression": {
													"id": 10000,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"baseExpression": {
																"id": 9988,
																"name": "nbTicketForUserAndTicketTypes",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9627,
																"src": "7473:29:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
																	"typeString": "mapping(address => mapping(uint256 => uint256))"
																}
															},
															"id": 9991,
															"indexExpression": {
																"id": 9989,
																"name": "_to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9911,
																"src": "7503:3:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "7473:34:23",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
																"typeString": "mapping(uint256 => uint256)"
															}
														},
														"id": 9992,
														"indexExpression": {
															"id": 9990,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9913,
															"src": "7508:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "7473:49:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 9999,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"baseExpression": {
																"baseExpression": {
																	"id": 9993,
																	"name": "nbTicketForUserAndTicketTypes",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9627,
																	"src": "7525:29:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
																		"typeString": "mapping(address => mapping(uint256 => uint256))"
																	}
																},
																"id": 9995,
																"indexExpression": {
																	"id": 9994,
																	"name": "_to",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9911,
																	"src": "7555:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "7525:34:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
																	"typeString": "mapping(uint256 => uint256)"
																}
															},
															"id": 9997,
															"indexExpression": {
																"id": 9996,
																"name": "_ticketTypeId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9913,
																"src": "7560:13:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "7525:49:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "+",
														"rightExpression": {
															"hexValue": "31",
															"id": 9998,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7575:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														"src": "7525:51:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "7473:103:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 10001,
												"nodeType": "ExpressionStatement",
												"src": "7473:103:23"
											},
											{
												"expression": {
													"id": 10004,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 10002,
														"name": "_ticketIds",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9554,
														"src": "7591:10:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "+=",
													"rightHandSide": {
														"hexValue": "31",
														"id": 10003,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "7603:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_1_by_1",
															"typeString": "int_const 1"
														},
														"value": "1"
													},
													"src": "7591:13:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 10005,
												"nodeType": "ExpressionStatement",
												"src": "7591:13:23"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 10007,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9913,
															"src": "7634:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10008,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9919,
															"src": "7648:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10009,
															"name": "_to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9911,
															"src": "7656:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 10006,
														"name": "NewTicket",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9635,
														"src": "7624:9:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
															"typeString": "function (uint256,uint256,address)"
														}
													},
													"id": 10010,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7624:36:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10011,
												"nodeType": "EmitStatement",
												"src": "7619:41:23"
											}
										]
									},
									"id": 10013,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mintTicket",
									"nameLocation": "6674:10:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9916,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9911,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "6693:3:23",
												"nodeType": "VariableDeclaration",
												"scope": 10013,
												"src": "6685:11:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9910,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6685:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9913,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "6706:13:23",
												"nodeType": "VariableDeclaration",
												"scope": 10013,
												"src": "6698:21:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9912,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6698:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9915,
												"mutability": "mutable",
												"name": "_pricePerTicket",
												"nameLocation": "6728:15:23",
												"nodeType": "VariableDeclaration",
												"scope": 10013,
												"src": "6720:23:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9914,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6720:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6684:60:23"
									},
									"returnParameters": {
										"id": 9917,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6753:0:23"
									},
									"scope": 11013,
									"src": "6665:1002:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10057,
										"nodeType": "Block",
										"src": "7751:483:23",
										"statements": [
											{
												"assignments": [
													10024
												],
												"declarations": [
													{
														"constant": false,
														"id": 10024,
														"mutability": "mutable",
														"name": "theTicketType",
														"nameLocation": "7794:13:23",
														"nodeType": "VariableDeclaration",
														"scope": 10057,
														"src": "7761:46:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType"
														},
														"typeName": {
															"id": 10023,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10022,
																"name": "TixSellLibrary.TicketType",
																"nameLocations": [
																	"7761:14:23",
																	"7776:10:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11116,
																"src": "7761:25:23"
															},
															"referencedDeclaration": 11116,
															"src": "7761:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
																"typeString": "struct TixSellLibrary.TicketType"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10033,
												"initialValue": {
													"arguments": [
														{
															"id": 10031,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10015,
															"src": "7887:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"expression": {
																			"id": 10026,
																			"name": "eventContract",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9575,
																			"src": "7830:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IEventContract_$11705",
																				"typeString": "contract IEventContract"
																			}
																		},
																		"id": 10027,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "7844:21:23",
																		"memberName": "getTicketTypeContract",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11676,
																		"src": "7830:35:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
																			"typeString": "function () view external returns (address)"
																		}
																	},
																	"id": 10028,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "7830:37:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 10025,
																"name": "ITicketTypeContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11774,
																"src": "7810:19:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_ITicketTypeContract_$11774_$",
																	"typeString": "type(contract ITicketTypeContract)"
																}
															},
															"id": 10029,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7810:58:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketTypeContract_$11774",
																"typeString": "contract ITicketTypeContract"
															}
														},
														"id": 10030,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "7869:17:23",
														"memberName": "getTicketTypeInfo",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11766,
														"src": "7810:76:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_TicketType_$11116_memory_ptr_$",
															"typeString": "function (uint256) view external returns (struct TixSellLibrary.TicketType memory)"
														}
													},
													"id": 10032,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7810:91:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
														"typeString": "struct TixSellLibrary.TicketType memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7761:140:23"
											},
											{
												"assignments": [
													10035
												],
												"declarations": [
													{
														"constant": false,
														"id": 10035,
														"mutability": "mutable",
														"name": "pricePerTicket",
														"nameLocation": "7919:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10057,
														"src": "7911:22:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10034,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "7911:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10038,
												"initialValue": {
													"expression": {
														"id": 10036,
														"name": "theTicketType",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10024,
														"src": "7936:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType memory"
														}
													},
													"id": 10037,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "7950:11:23",
													"memberName": "ticketPrice",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 11078,
													"src": "7936:25:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7911:50:23"
											},
											{
												"condition": {
													"expression": {
														"id": 10039,
														"name": "theTicketType",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10024,
														"src": "7983:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType memory"
														}
													},
													"id": 10040,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "7997:8:23",
													"memberName": "earlyBid",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 11094,
													"src": "7983:22:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10054,
												"nodeType": "IfStatement",
												"src": "7979:218:23",
												"trueBody": {
													"id": 10053,
													"nodeType": "Block",
													"src": "8006:191:23",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 10045,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 10041,
																		"name": "theTicketType",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10024,
																		"src": "8024:13:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																			"typeString": "struct TixSellLibrary.TicketType memory"
																		}
																	},
																	"id": 10042,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "8038:15:23",
																	"memberName": "discountEndDate",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 11098,
																	"src": "8024:29:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"expression": {
																		"id": 10043,
																		"name": "block",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967292,
																		"src": "8056:5:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_block",
																			"typeString": "block"
																		}
																	},
																	"id": 10044,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "8062:9:23",
																	"memberName": "timestamp",
																	"nodeType": "MemberAccess",
																	"src": "8056:15:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "8024:47:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 10052,
															"nodeType": "IfStatement",
															"src": "8020:167:23",
															"trueBody": {
																"id": 10051,
																"nodeType": "Block",
																"src": "8072:115:23",
																"statements": [
																	{
																		"expression": {
																			"id": 10049,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10046,
																				"name": "pricePerTicket",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10035,
																				"src": "8128:14:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"expression": {
																					"id": 10047,
																					"name": "theTicketType",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10024,
																					"src": "8145:13:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																						"typeString": "struct TixSellLibrary.TicketType memory"
																					}
																				},
																				"id": 10048,
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "8159:13:23",
																				"memberName": "discountPrice",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 11096,
																				"src": "8145:27:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "8128:44:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 10050,
																		"nodeType": "ExpressionStatement",
																		"src": "8128:44:23"
																	}
																]
															}
														}
													]
												}
											},
											{
												"expression": {
													"id": 10055,
													"name": "pricePerTicket",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 10035,
													"src": "8213:14:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 10019,
												"id": 10056,
												"nodeType": "Return",
												"src": "8206:21:23"
											}
										]
									},
									"id": 10058,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getTicketsPrice",
									"nameLocation": "7682:15:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10016,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10015,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "7706:13:23",
												"nodeType": "VariableDeclaration",
												"scope": 10058,
												"src": "7698:21:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10014,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7698:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7697:23:23"
									},
									"returnParameters": {
										"id": 10019,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10018,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10058,
												"src": "7743:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10017,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7743:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7742:9:23"
									},
									"scope": 11013,
									"src": "7673:561:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10435,
										"nodeType": "Block",
										"src": "8580:4918:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 10074,
															"name": "_reservationId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10060,
															"src": "8711:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														{
															"expression": {
																"id": 10075,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "8726:3:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 10076,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "8730:6:23",
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "8726:10:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 10077,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10062,
															"src": "8737:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10078,
															"name": "_amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10064,
															"src": "8751:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"baseExpression": {
																"baseExpression": {
																	"id": 10079,
																	"name": "nbTicketForUserAndTicketTypes",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9627,
																	"src": "8760:29:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
																		"typeString": "mapping(address => mapping(uint256 => uint256))"
																	}
																},
																"id": 10082,
																"indexExpression": {
																	"expression": {
																		"id": 10080,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "8790:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 10081,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "8794:6:23",
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "8790:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "8760:41:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
																	"typeString": "mapping(uint256 => uint256)"
																}
															},
															"id": 10084,
															"indexExpression": {
																"id": 10083,
																"name": "_ticketTypeId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10062,
																"src": "8802:13:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "8760:56:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10071,
															"name": "ticketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9578,
															"src": "8661:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
																"typeString": "contract ITicketReservationContract"
															}
														},
														"id": 10073,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "8687:23:23",
														"memberName": "createReservationNumber",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11721,
														"src": "8661:49:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (string memory,address,uint256,uint256,uint256) external"
														}
													},
													"id": 10085,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8661:156:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10086,
												"nodeType": "ExpressionStatement",
												"src": "8661:156:23"
											},
											{
												"assignments": [
													10088
												],
												"declarations": [
													{
														"constant": false,
														"id": 10088,
														"mutability": "mutable",
														"name": "amount",
														"nameLocation": "8898:6:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "8890:14:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10087,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "8890:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10090,
												"initialValue": {
													"id": 10089,
													"name": "_amount",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 10064,
													"src": "8907:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8890:24:23"
											},
											{
												"assignments": [
													10093
												],
												"declarations": [
													{
														"constant": false,
														"id": 10093,
														"mutability": "mutable",
														"name": "paytoken",
														"nameLocation": "8933:8:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "8926:15:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_IERC20_$807",
															"typeString": "contract IERC20"
														},
														"typeName": {
															"id": 10092,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10091,
																"name": "IERC20",
																"nameLocations": [
																	"8926:6:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 807,
																"src": "8926:6:23"
															},
															"referencedDeclaration": 807,
															"src": "8926:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10094,
												"nodeType": "VariableDeclarationStatement",
												"src": "8926:15:23"
											},
											{
												"condition": {
													"id": 10095,
													"name": "_withERC20",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 10066,
													"src": "8955:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10123,
												"nodeType": "IfStatement",
												"src": "8951:285:23",
												"trueBody": {
													"id": 10122,
													"nodeType": "Block",
													"src": "8966:270:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 10100,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 10097,
																			"name": "_cryptoId",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10068,
																			"src": "9001:9:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "<",
																		"rightExpression": {
																			"expression": {
																				"id": 10098,
																				"name": "AllowedCrypto",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 9588,
																				"src": "9011:13:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage",
																					"typeString": "struct TicketContract.TokenInfo storage ref[] storage ref"
																				}
																			},
																			"id": 10099,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberLocation": "9025:6:23",
																			"memberName": "length",
																			"nodeType": "MemberAccess",
																			"src": "9011:20:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "9001:30:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "43727970746f20696420696e76616c6964",
																		"id": 10101,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "9032:19:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_c2e7bcaad0792aee6b049ad65d50cd3bc541115fecba3b35cfd2a60852a21a76",
																			"typeString": "literal_string \"Crypto id invalid\""
																		},
																		"value": "Crypto id invalid"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_c2e7bcaad0792aee6b049ad65d50cd3bc541115fecba3b35cfd2a60852a21a76",
																			"typeString": "literal_string \"Crypto id invalid\""
																		}
																	],
																	"id": 10096,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "8993:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 10102,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "8993:59:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10103,
															"nodeType": "ExpressionStatement",
															"src": "8993:59:23"
														},
														{
															"assignments": [
																10106
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10106,
																	"mutability": "mutable",
																	"name": "tokens",
																	"nameLocation": "9083:6:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10122,
																	"src": "9066:23:23",
																	"stateVariable": false,
																	"storageLocation": "memory",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_TokenInfo_$9584_memory_ptr",
																		"typeString": "struct TicketContract.TokenInfo"
																	},
																	"typeName": {
																		"id": 10105,
																		"nodeType": "UserDefinedTypeName",
																		"pathNode": {
																			"id": 10104,
																			"name": "TokenInfo",
																			"nameLocations": [
																				"9066:9:23"
																			],
																			"nodeType": "IdentifierPath",
																			"referencedDeclaration": 9584,
																			"src": "9066:9:23"
																		},
																		"referencedDeclaration": 9584,
																		"src": "9066:9:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_TokenInfo_$9584_storage_ptr",
																			"typeString": "struct TicketContract.TokenInfo"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10110,
															"initialValue": {
																"baseExpression": {
																	"id": 10107,
																	"name": "AllowedCrypto",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9588,
																	"src": "9092:13:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_struct$_TokenInfo_$9584_storage_$dyn_storage",
																		"typeString": "struct TicketContract.TokenInfo storage ref[] storage ref"
																	}
																},
																"id": 10109,
																"indexExpression": {
																	"id": 10108,
																	"name": "_cryptoId",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10068,
																	"src": "9106:9:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "9092:24:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_TokenInfo_$9584_storage",
																	"typeString": "struct TicketContract.TokenInfo storage ref"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "9066:50:23"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"expression": {
																			"id": 10112,
																			"name": "tokens",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10106,
																			"src": "9148:6:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TokenInfo_$9584_memory_ptr",
																				"typeString": "struct TicketContract.TokenInfo memory"
																			}
																		},
																		"id": 10113,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "9155:6:23",
																		"memberName": "exists",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 9583,
																		"src": "9148:13:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "43727970746f206e6f7420737570706f72746564",
																		"id": 10114,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "9162:22:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_cf3a35bdefbd6ebb6b52537ce1f12ea5ce435a3503105bd5228a859735307ed2",
																			"typeString": "literal_string \"Crypto not supported\""
																		},
																		"value": "Crypto not supported"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_cf3a35bdefbd6ebb6b52537ce1f12ea5ce435a3503105bd5228a859735307ed2",
																			"typeString": "literal_string \"Crypto not supported\""
																		}
																	],
																	"id": 10111,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "9140:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 10115,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "9140:45:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10116,
															"nodeType": "ExpressionStatement",
															"src": "9140:45:23"
														},
														{
															"expression": {
																"id": 10120,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"id": 10117,
																	"name": "paytoken",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10093,
																	"src": "9199:8:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"expression": {
																		"id": 10118,
																		"name": "tokens",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10106,
																		"src": "9210:6:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_TokenInfo_$9584_memory_ptr",
																			"typeString": "struct TicketContract.TokenInfo memory"
																		}
																	},
																	"id": 10119,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "9217:8:23",
																	"memberName": "paytoken",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 9581,
																	"src": "9210:15:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																"src": "9199:26:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															},
															"id": 10121,
															"nodeType": "ExpressionStatement",
															"src": "9199:26:23"
														}
													]
												}
											},
											{
												"assignments": [
													10125
												],
												"declarations": [
													{
														"constant": false,
														"id": 10125,
														"mutability": "mutable",
														"name": "pricePerTicket",
														"nameLocation": "9261:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9253:22:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10124,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "9253:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10129,
												"initialValue": {
													"arguments": [
														{
															"id": 10127,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10062,
															"src": "9294:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 10126,
														"name": "getTicketsPrice",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10058,
														"src": "9278:15:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (uint256) view returns (uint256)"
														}
													},
													"id": 10128,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9278:30:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9253:55:23"
											},
											{
												"assignments": [
													10131
												],
												"declarations": [
													{
														"constant": false,
														"id": 10131,
														"mutability": "mutable",
														"name": "priceToPaid",
														"nameLocation": "9336:11:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9328:19:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10130,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "9328:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10135,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10134,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10132,
														"name": "pricePerTicket",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10125,
														"src": "9350:14:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "*",
													"rightExpression": {
														"id": 10133,
														"name": "amount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10088,
														"src": "9365:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "9350:21:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9328:43:23"
											},
											{
												"assignments": [
													10137
												],
												"declarations": [
													{
														"constant": false,
														"id": 10137,
														"mutability": "mutable",
														"name": "priceInDollars",
														"nameLocation": "9386:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9381:19:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10136,
															"name": "uint",
															"nodeType": "ElementaryTypeName",
															"src": "9381:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10139,
												"initialValue": {
													"hexValue": "31",
													"id": 10138,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "9403:1:23",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_1_by_1",
														"typeString": "int_const 1"
													},
													"value": "1"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9381:23:23"
											},
											{
												"assignments": [
													10141
												],
												"declarations": [
													{
														"constant": false,
														"id": 10141,
														"mutability": "mutable",
														"name": "euroToDollarValue",
														"nameLocation": "9529:17:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9525:21:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"typeName": {
															"id": 10140,
															"name": "int",
															"nodeType": "ElementaryTypeName",
															"src": "9525:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10144,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 10142,
														"name": "getLatestData",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9681,
														"src": "9549:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$",
															"typeString": "function () view returns (int256)"
														}
													},
													"id": 10143,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9549:15:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9525:39:23"
											},
											{
												"assignments": [
													10146
												],
												"declarations": [
													{
														"constant": false,
														"id": 10146,
														"mutability": "mutable",
														"name": "maticToUsd",
														"nameLocation": "9661:10:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9657:14:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_int256",
															"typeString": "int256"
														},
														"typeName": {
															"id": 10145,
															"name": "int",
															"nodeType": "ElementaryTypeName",
															"src": "9657:3:23",
															"typeDescriptions": {
																"typeIdentifier": "t_int256",
																"typeString": "int256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10149,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 10147,
														"name": "getLatestDataMaticUsd",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9695,
														"src": "9674:21:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$_t_int256_$",
															"typeString": "function () view returns (int256)"
														}
													},
													"id": 10148,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9674:23:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9657:40:23"
											},
											{
												"assignments": [
													10151
												],
												"declarations": [
													{
														"constant": false,
														"id": 10151,
														"mutability": "mutable",
														"name": "converted",
														"nameLocation": "9713:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "9708:14:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10150,
															"name": "uint",
															"nodeType": "ElementaryTypeName",
															"src": "9708:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10158,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10157,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [
															{
																"id": 10154,
																"name": "maticToUsd",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10146,
																"src": "9730:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_int256",
																	"typeString": "int256"
																}
															],
															"id": 10153,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "9725:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_uint256_$",
																"typeString": "type(uint256)"
															},
															"typeName": {
																"id": 10152,
																"name": "uint",
																"nodeType": "ElementaryTypeName",
																"src": "9725:4:23",
																"typeDescriptions": {}
															}
														},
														"id": 10155,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "9725:16:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "*",
													"rightExpression": {
														"hexValue": "31653130",
														"id": 10156,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "9742:4:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_10000000000_by_1",
															"typeString": "int_const 10000000000"
														},
														"value": "1e10"
													},
													"src": "9725:21:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9708:38:23"
											},
											{
												"expression": {
													"id": 10166,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 10159,
														"name": "priceInDollars",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10137,
														"src": "9756:14:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 10165,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"arguments": [
																{
																	"id": 10162,
																	"name": "euroToDollarValue",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10141,
																	"src": "9778:17:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																],
																"id": 10161,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "9773:4:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_uint256_$",
																	"typeString": "type(uint256)"
																},
																"typeName": {
																	"id": 10160,
																	"name": "uint",
																	"nodeType": "ElementaryTypeName",
																	"src": "9773:4:23",
																	"typeDescriptions": {}
																}
															},
															"id": 10163,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9773:23:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "*",
														"rightExpression": {
															"hexValue": "31653130",
															"id": 10164,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "9799:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_10000000000_by_1",
																"typeString": "int_const 10000000000"
															},
															"value": "1e10"
														},
														"src": "9773:30:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "9756:47:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 10167,
												"nodeType": "ExpressionStatement",
												"src": "9756:47:23"
											},
											{
												"expression": {
													"id": 10178,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 10168,
														"name": "priceToPaid",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10131,
														"src": "9848:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 10177,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"components": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 10174,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"components": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 10171,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"id": 10169,
																					"name": "pricePerTicket",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10125,
																					"src": "9864:14:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": "*",
																				"rightExpression": {
																					"id": 10170,
																					"name": "priceInDollars",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10137,
																					"src": "9879:14:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "9864:29:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			}
																		],
																		"id": 10172,
																		"isConstant": false,
																		"isInlineArray": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "TupleExpression",
																		"src": "9863:31:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "/",
																	"rightExpression": {
																		"hexValue": "31653138",
																		"id": 10173,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "9895:4:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_1000000000000000000_by_1",
																			"typeString": "int_const 1000000000000000000"
																		},
																		"value": "1e18"
																	},
																	"src": "9863:36:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 10175,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "9862:38:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "*",
														"rightExpression": {
															"id": 10176,
															"name": "amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10088,
															"src": "9901:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "9862:45:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "9848:59:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 10179,
												"nodeType": "ExpressionStatement",
												"src": "9848:59:23"
											},
											{
												"condition": {
													"id": 10180,
													"name": "_withERC20",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 10066,
													"src": "9921:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 10217,
													"nodeType": "Block",
													"src": "10356:259:23",
													"statements": [
														{
															"assignments": [
																10200
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10200,
																	"mutability": "mutable",
																	"name": "priceToPaidMatic",
																	"nameLocation": "10375:16:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10217,
																	"src": "10370:21:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 10199,
																		"name": "uint",
																		"nodeType": "ElementaryTypeName",
																		"src": "10370:4:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10207,
															"initialValue": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 10206,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10203,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10201,
																				"name": "priceToPaid",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10131,
																				"src": "10395:11:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "/",
																			"rightExpression": {
																				"id": 10202,
																				"name": "converted",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10151,
																				"src": "10407:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "10395:21:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 10204,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "10394:23:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"hexValue": "31653138",
																	"id": 10205,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10418:4:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1000000000000000000_by_1",
																		"typeString": "int_const 1000000000000000000"
																	},
																	"value": "1e18"
																},
																"src": "10394:28:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "10370:52:23"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"components": [
																			{
																				"commonType": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"id": 10212,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"leftExpression": {
																					"expression": {
																						"id": 10209,
																						"name": "msg",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4294967281,
																						"src": "10553:3:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_magic_message",
																							"typeString": "msg"
																						}
																					},
																					"id": 10210,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"memberLocation": "10557:5:23",
																					"memberName": "value",
																					"nodeType": "MemberAccess",
																					"src": "10553:9:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"nodeType": "BinaryOperation",
																				"operator": ">=",
																				"rightExpression": {
																					"id": 10211,
																					"name": "priceToPaidMatic",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10200,
																					"src": "10566:16:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"src": "10553:29:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			}
																		],
																		"id": 10213,
																		"isConstant": false,
																		"isInlineArray": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "TupleExpression",
																		"src": "10552:31:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "6e6f7420656e6f756768206d6f6e6579",
																		"id": 10214,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "10584:18:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_afa1de271c3ef28c1cff5e24858238ad8024ac9cb46d162cf58c4ee8296ca63e",
																			"typeString": "literal_string \"not enough money\""
																		},
																		"value": "not enough money"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_afa1de271c3ef28c1cff5e24858238ad8024ac9cb46d162cf58c4ee8296ca63e",
																			"typeString": "literal_string \"not enough money\""
																		}
																	],
																	"id": 10208,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "10544:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 10215,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10544:59:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10216,
															"nodeType": "ExpressionStatement",
															"src": "10544:59:23"
														}
													]
												},
												"id": 10218,
												"nodeType": "IfStatement",
												"src": "9917:698:23",
												"trueBody": {
													"id": 10198,
													"nodeType": "Block",
													"src": "9932:410:23",
													"statements": [
														{
															"assignments": [
																10182
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10182,
																	"mutability": "mutable",
																	"name": "toPayInUdsc",
																	"nameLocation": "10080:11:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10198,
																	"src": "10072:19:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 10181,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "10072:7:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10186,
															"initialValue": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 10185,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 10183,
																	"name": "priceToPaid",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10131,
																	"src": "10094:11:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "/",
																"rightExpression": {
																	"hexValue": "31653132",
																	"id": 10184,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10106:4:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1000000000000_by_1",
																		"typeString": "int_const 1000000000000"
																	},
																	"value": "1e12"
																},
																"src": "10094:16:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "10072:38:23"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 10194,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"arguments": [
																				{
																					"expression": {
																						"id": 10190,
																						"name": "msg",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 4294967281,
																						"src": "10278:3:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_magic_message",
																							"typeString": "msg"
																						}
																					},
																					"id": 10191,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"memberLocation": "10282:6:23",
																					"memberName": "sender",
																					"nodeType": "MemberAccess",
																					"src": "10278:10:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				],
																				"expression": {
																					"id": 10188,
																					"name": "paytoken",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10093,
																					"src": "10259:8:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_contract$_IERC20_$807",
																						"typeString": "contract IERC20"
																					}
																				},
																				"id": 10189,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "10268:9:23",
																				"memberName": "balanceOf",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 764,
																				"src": "10259:18:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
																					"typeString": "function (address) view external returns (uint256)"
																				}
																			},
																			"id": 10192,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "10259:30:23",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">=",
																		"rightExpression": {
																			"id": 10193,
																			"name": "toPayInUdsc",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10182,
																			"src": "10291:11:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"src": "10259:43:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "4e6f7420656e6f7567687420455243323020746f20706179",
																		"id": 10195,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "10303:26:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_590c914c55848cf243a48a2453dff70f1c6302ff282057432c8968a12f1caa34",
																			"typeString": "literal_string \"Not enought ERC20 to pay\""
																		},
																		"value": "Not enought ERC20 to pay"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_590c914c55848cf243a48a2453dff70f1c6302ff282057432c8968a12f1caa34",
																			"typeString": "literal_string \"Not enought ERC20 to pay\""
																		}
																	],
																	"id": 10187,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "10251:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 10196,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "10251:79:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10197,
															"nodeType": "ExpressionStatement",
															"src": "10251:79:23"
														}
													]
												}
											},
											{
												"assignments": [
													10223
												],
												"declarations": [
													{
														"constant": false,
														"id": 10223,
														"mutability": "mutable",
														"name": "theTicketType",
														"nameLocation": "10677:13:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "10644:46:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType"
														},
														"typeName": {
															"id": 10222,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10221,
																"name": "TixSellLibrary.TicketType",
																"nameLocations": [
																	"10644:14:23",
																	"10659:10:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11116,
																"src": "10644:25:23"
															},
															"referencedDeclaration": 11116,
															"src": "10644:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
																"typeString": "struct TixSellLibrary.TicketType"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10232,
												"initialValue": {
													"arguments": [
														{
															"id": 10230,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10062,
															"src": "10771:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"expression": {
																			"id": 10225,
																			"name": "eventContract",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9575,
																			"src": "10714:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IEventContract_$11705",
																				"typeString": "contract IEventContract"
																			}
																		},
																		"id": 10226,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "10728:21:23",
																		"memberName": "getTicketTypeContract",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11676,
																		"src": "10714:35:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
																			"typeString": "function () view external returns (address)"
																		}
																	},
																	"id": 10227,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "10714:37:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 10224,
																"name": "ITicketTypeContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11774,
																"src": "10694:19:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_ITicketTypeContract_$11774_$",
																	"typeString": "type(contract ITicketTypeContract)"
																}
															},
															"id": 10228,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10694:58:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketTypeContract_$11774",
																"typeString": "contract ITicketTypeContract"
															}
														},
														"id": 10229,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "10753:17:23",
														"memberName": "getTicketTypeInfo",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11766,
														"src": "10694:76:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_TicketType_$11116_memory_ptr_$",
															"typeString": "function (uint256) view external returns (struct TixSellLibrary.TicketType memory)"
														}
													},
													"id": 10231,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10694:91:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
														"typeString": "struct TixSellLibrary.TicketType memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "10644:141:23"
											},
											{
												"assignments": [
													10234
												],
												"declarations": [
													{
														"constant": false,
														"id": 10234,
														"mutability": "mutable",
														"name": "fixAmount",
														"nameLocation": "10892:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10435,
														"src": "10884:17:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10233,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "10884:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10237,
												"initialValue": {
													"expression": {
														"id": 10235,
														"name": "theTicketType",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10223,
														"src": "10904:13:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType memory"
														}
													},
													"id": 10236,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "10918:9:23",
													"memberName": "fixAmount",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 11102,
													"src": "10904:23:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "10884:43:23"
											},
											{
												"body": {
													"id": 10420,
													"nodeType": "Block",
													"src": "10988:2243:23",
													"statements": [
														{
															"assignments": [
																10249
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10249,
																	"mutability": "mutable",
																	"name": "fixFee",
																	"nameLocation": "11071:6:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10420,
																	"src": "11063:14:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 10248,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "11063:7:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10251,
															"initialValue": {
																"hexValue": "30",
																"id": 10250,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "11080:1:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "11063:18:23"
														},
														{
															"assignments": [
																10253
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10253,
																	"mutability": "mutable",
																	"name": "unitPrice",
																	"nameLocation": "11251:9:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10420,
																	"src": "11243:17:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 10252,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "11243:7:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10261,
															"initialValue": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 10259,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"components": [
																				{
																					"commonType": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					},
																					"id": 10256,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"lValueRequested": false,
																					"leftExpression": {
																						"id": 10254,
																						"name": "pricePerTicket",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 10125,
																						"src": "11265:14:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "BinaryOperation",
																					"operator": "*",
																					"rightExpression": {
																						"id": 10255,
																						"name": "priceInDollars",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 10137,
																						"src": "11280:14:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"src": "11265:29:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"id": 10257,
																			"isConstant": false,
																			"isInlineArray": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "TupleExpression",
																			"src": "11264:31:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "/",
																		"rightExpression": {
																			"hexValue": "31653138",
																			"id": 10258,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "11296:4:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_1000000000000000000_by_1",
																				"typeString": "int_const 1000000000000000000"
																			},
																			"value": "1e18"
																		},
																		"src": "11264:36:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"id": 10260,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "11263:38:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "11243:58:23"
														},
														{
															"condition": {
																"id": 10262,
																"name": "_withERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10066,
																"src": "11319:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 10319,
																"nodeType": "Block",
																"src": "11526:350:23",
																"statements": [
																	{
																		"assignments": [
																			10280
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 10280,
																				"mutability": "mutable",
																				"name": "priceToPaidMatic",
																				"nameLocation": "11549:16:23",
																				"nodeType": "VariableDeclaration",
																				"scope": 10319,
																				"src": "11544:21:23",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 10279,
																					"name": "uint",
																					"nodeType": "ElementaryTypeName",
																					"src": "11544:4:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 10287,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10286,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"components": [
																					{
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 10283,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"id": 10281,
																							"name": "unitPrice",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 10253,
																							"src": "11569:9:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "/",
																						"rightExpression": {
																							"id": 10282,
																							"name": "converted",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 10151,
																							"src": "11579:9:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "11569:19:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					}
																				],
																				"id": 10284,
																				"isConstant": false,
																				"isInlineArray": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"nodeType": "TupleExpression",
																				"src": "11568:21:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "*",
																			"rightExpression": {
																				"hexValue": "31653138",
																				"id": 10285,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "11590:4:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_1000000000000000000_by_1",
																					"typeString": "int_const 1000000000000000000"
																				},
																				"value": "1e18"
																			},
																			"src": "11568:26:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "11544:50:23"
																	},
																	{
																		"expression": {
																			"id": 10290,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10288,
																				"name": "unitPrice",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10253,
																				"src": "11612:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"id": 10289,
																				"name": "priceToPaidMatic",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10280,
																				"src": "11624:16:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "11612:28:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 10291,
																		"nodeType": "ExpressionStatement",
																		"src": "11612:28:23"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10294,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10292,
																				"name": "unitPrice",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10253,
																				"src": "11662:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">=",
																			"rightExpression": {
																				"hexValue": "31653138",
																				"id": 10293,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "11673:4:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_1000000000000000000_by_1",
																					"typeString": "int_const 1000000000000000000"
																				},
																				"value": "1e18"
																			},
																			"src": "11662:15:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10318,
																		"nodeType": "IfStatement",
																		"src": "11658:204:23",
																		"trueBody": {
																			"id": 10317,
																			"nodeType": "Block",
																			"src": "11678:184:23",
																			"statements": [
																				{
																					"assignments": [
																						10296
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 10296,
																							"mutability": "mutable",
																							"name": "fixFeeDollar",
																							"nameLocation": "11707:12:23",
																							"nodeType": "VariableDeclaration",
																							"scope": 10317,
																							"src": "11702:17:23",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 10295,
																								"name": "uint",
																								"nodeType": "ElementaryTypeName",
																								"src": "11702:4:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 10304,
																					"initialValue": {
																						"components": [
																							{
																								"commonType": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								},
																								"id": 10302,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"leftExpression": {
																									"components": [
																										{
																											"commonType": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											},
																											"id": 10299,
																											"isConstant": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"leftExpression": {
																												"id": 10297,
																												"name": "fixAmount",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 10234,
																												"src": "11724:9:23",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"nodeType": "BinaryOperation",
																											"operator": "*",
																											"rightExpression": {
																												"id": 10298,
																												"name": "priceInDollars",
																												"nodeType": "Identifier",
																												"overloadedDeclarations": [],
																												"referencedDeclaration": 10137,
																												"src": "11734:14:23",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											},
																											"src": "11724:24:23",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										}
																									],
																									"id": 10300,
																									"isConstant": false,
																									"isInlineArray": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"nodeType": "TupleExpression",
																									"src": "11723:26:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"nodeType": "BinaryOperation",
																								"operator": "/",
																								"rightExpression": {
																									"hexValue": "31653138",
																									"id": 10301,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"kind": "number",
																									"lValueRequested": false,
																									"nodeType": "Literal",
																									"src": "11750:4:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_rational_1000000000000000000_by_1",
																										"typeString": "int_const 1000000000000000000"
																									},
																									"value": "1e18"
																								},
																								"src": "11723:31:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"id": 10303,
																						"isConstant": false,
																						"isInlineArray": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "TupleExpression",
																						"src": "11722:33:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "11702:53:23"
																				},
																				{
																					"expression": {
																						"id": 10315,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 10305,
																							"name": "fixFee",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 10249,
																							"src": "11799:6:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"commonType": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"id": 10314,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"leftExpression": {
																								"components": [
																									{
																										"commonType": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										},
																										"id": 10311,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"leftExpression": {
																											"components": [
																												{
																													"commonType": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													},
																													"id": 10308,
																													"isConstant": false,
																													"isLValue": false,
																													"isPure": false,
																													"lValueRequested": false,
																													"leftExpression": {
																														"id": 10306,
																														"name": "fixFeeDollar",
																														"nodeType": "Identifier",
																														"overloadedDeclarations": [],
																														"referencedDeclaration": 10296,
																														"src": "11810:12:23",
																														"typeDescriptions": {
																															"typeIdentifier": "t_uint256",
																															"typeString": "uint256"
																														}
																													},
																													"nodeType": "BinaryOperation",
																													"operator": "*",
																													"rightExpression": {
																														"hexValue": "313030",
																														"id": 10307,
																														"isConstant": false,
																														"isLValue": false,
																														"isPure": true,
																														"kind": "number",
																														"lValueRequested": false,
																														"nodeType": "Literal",
																														"src": "11823:3:23",
																														"typeDescriptions": {
																															"typeIdentifier": "t_rational_100_by_1",
																															"typeString": "int_const 100"
																														},
																														"value": "100"
																													},
																													"src": "11810:16:23",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												}
																											],
																											"id": 10309,
																											"isConstant": false,
																											"isInlineArray": false,
																											"isLValue": false,
																											"isPure": false,
																											"lValueRequested": false,
																											"nodeType": "TupleExpression",
																											"src": "11809:18:23",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"nodeType": "BinaryOperation",
																										"operator": "/",
																										"rightExpression": {
																											"id": 10310,
																											"name": "converted",
																											"nodeType": "Identifier",
																											"overloadedDeclarations": [],
																											"referencedDeclaration": 10151,
																											"src": "11828:9:23",
																											"typeDescriptions": {
																												"typeIdentifier": "t_uint256",
																												"typeString": "uint256"
																											}
																										},
																										"src": "11809:28:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									}
																								],
																								"id": 10312,
																								"isConstant": false,
																								"isInlineArray": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"nodeType": "TupleExpression",
																								"src": "11808:30:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"nodeType": "BinaryOperation",
																							"operator": "*",
																							"rightExpression": {
																								"hexValue": "31653136",
																								"id": 10313,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "number",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "11839:4:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_rational_10000000000000000_by_1",
																									"typeString": "int_const 10000000000000000"
																								},
																								"value": "1e16"
																							},
																							"src": "11808:35:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "11799:44:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 10316,
																					"nodeType": "ExpressionStatement",
																					"src": "11799:44:23"
																				}
																			]
																		}
																	}
																]
															},
															"id": 10320,
															"nodeType": "IfStatement",
															"src": "11315:561:23",
															"trueBody": {
																"id": 10278,
																"nodeType": "Block",
																"src": "11330:179:23",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10265,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10263,
																				"name": "unitPrice",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10253,
																				"src": "11378:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">=",
																			"rightExpression": {
																				"hexValue": "31653138",
																				"id": 10264,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "11389:4:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_1000000000000000000_by_1",
																					"typeString": "int_const 1000000000000000000"
																				},
																				"value": "1e18"
																			},
																			"src": "11378:15:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10277,
																		"nodeType": "IfStatement",
																		"src": "11374:121:23",
																		"trueBody": {
																			"id": 10276,
																			"nodeType": "Block",
																			"src": "11394:101:23",
																			"statements": [
																				{
																					"expression": {
																						"id": 10274,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftHandSide": {
																							"id": 10266,
																							"name": "fixFee",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 10249,
																							"src": "11414:6:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "Assignment",
																						"operator": "=",
																						"rightHandSide": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 10272,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"components": [
																											{
																												"commonType": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												},
																												"id": 10269,
																												"isConstant": false,
																												"isLValue": false,
																												"isPure": false,
																												"lValueRequested": false,
																												"leftExpression": {
																													"id": 10267,
																													"name": "fixAmount",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 10234,
																													"src": "11425:9:23",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"nodeType": "BinaryOperation",
																												"operator": "*",
																												"rightExpression": {
																													"id": 10268,
																													"name": "priceInDollars",
																													"nodeType": "Identifier",
																													"overloadedDeclarations": [],
																													"referencedDeclaration": 10137,
																													"src": "11435:14:23",
																													"typeDescriptions": {
																														"typeIdentifier": "t_uint256",
																														"typeString": "uint256"
																													}
																												},
																												"src": "11425:24:23",
																												"typeDescriptions": {
																													"typeIdentifier": "t_uint256",
																													"typeString": "uint256"
																												}
																											}
																										],
																										"id": 10270,
																										"isConstant": false,
																										"isInlineArray": false,
																										"isLValue": false,
																										"isPure": false,
																										"lValueRequested": false,
																										"nodeType": "TupleExpression",
																										"src": "11424:26:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "/",
																									"rightExpression": {
																										"hexValue": "31653138",
																										"id": 10271,
																										"isConstant": false,
																										"isLValue": false,
																										"isPure": true,
																										"kind": "number",
																										"lValueRequested": false,
																										"nodeType": "Literal",
																										"src": "11451:4:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_rational_1000000000000000000_by_1",
																											"typeString": "int_const 1000000000000000000"
																										},
																										"value": "1e18"
																									},
																									"src": "11424:31:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 10273,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "11423:33:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"src": "11414:42:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"id": 10275,
																					"nodeType": "ExpressionStatement",
																					"src": "11414:42:23"
																				}
																			]
																		}
																	}
																]
															}
														},
														{
															"assignments": [
																10322
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10322,
																	"mutability": "mutable",
																	"name": "provRoyalty",
																	"nameLocation": "11958:11:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10420,
																	"src": "11951:18:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	},
																	"typeName": {
																		"id": 10321,
																		"name": "uint96",
																		"nodeType": "ElementaryTypeName",
																		"src": "11951:6:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10326,
															"initialValue": {
																"commonType": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																},
																"id": 10325,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 10323,
																	"name": "royaltyValue",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9557,
																	"src": "11972:12:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "/",
																"rightExpression": {
																	"hexValue": "313030",
																	"id": 10324,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11987:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_100_by_1",
																		"typeString": "int_const 100"
																	},
																	"value": "100"
																},
																"src": "11972:18:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "11951:39:23"
														},
														{
															"assignments": [
																10328
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10328,
																	"mutability": "mutable",
																	"name": "amountPercent",
																	"nameLocation": "12012:13:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10420,
																	"src": "12004:21:23",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 10327,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "12004:7:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10334,
															"initialValue": {
																"arguments": [
																	{
																		"id": 10330,
																		"name": "provRoyalty",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10322,
																		"src": "12035:11:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	{
																		"id": 10331,
																		"name": "unitPrice",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10253,
																		"src": "12048:9:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"hexValue": "313030",
																		"id": 10332,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "12059:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_100_by_1",
																			"typeString": "int_const 100"
																		},
																		"value": "100"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_rational_100_by_1",
																			"typeString": "int_const 100"
																		}
																	],
																	"id": 10329,
																	"name": "mulDiv",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11012,
																	"src": "12028:6:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
																		"typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
																	}
																},
																"id": 10333,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "12028:35:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "12004:59:23"
														},
														{
															"condition": {
																"id": 10335,
																"name": "_withERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10066,
																"src": "12179:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 10411,
																"nodeType": "Block",
																"src": "12767:388:23",
																"statements": [
																	{
																		"assignments": [
																			10379
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 10379,
																				"mutability": "mutable",
																				"name": "totalForTixSell",
																				"nameLocation": "12794:15:23",
																				"nodeType": "VariableDeclaration",
																				"scope": 10411,
																				"src": "12786:23:23",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 10378,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "12786:7:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 10383,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10382,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10380,
																				"name": "amountPercent",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10328,
																				"src": "12812:13:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "+",
																			"rightExpression": {
																				"id": 10381,
																				"name": "fixFee",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10249,
																				"src": "12826:6:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "12812:20:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "12786:46:23"
																	},
																	{
																		"assignments": [
																			10385
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 10385,
																				"mutability": "mutable",
																				"name": "totalOrga",
																				"nameLocation": "12859:9:23",
																				"nodeType": "VariableDeclaration",
																				"scope": 10411,
																				"src": "12851:17:23",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 10384,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "12851:7:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 10389,
																		"initialValue": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10388,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10386,
																				"name": "unitPrice",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10253,
																				"src": "12871:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "-",
																			"rightExpression": {
																				"id": 10387,
																				"name": "totalForTixSell",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10379,
																				"src": "12883:15:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "12871:27:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "12851:47:23"
																	},
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10392,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10390,
																				"name": "pricePerTicket",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10125,
																				"src": "12949:14:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 10391,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12964:1:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "12949:16:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10410,
																		"nodeType": "IfStatement",
																		"src": "12945:196:23",
																		"trueBody": {
																			"id": 10409,
																			"nodeType": "Block",
																			"src": "12966:175:23",
																			"statements": [
																				{
																					"expression": {
																						"arguments": [
																							{
																								"id": 10398,
																								"name": "totalForTixSell",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10379,
																								"src": "13030:15:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"expression": {
																								"arguments": [
																									{
																										"id": 10395,
																										"name": "tixSellpaymentSplitter",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 9562,
																										"src": "12997:22:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_address_payable",
																											"typeString": "address payable"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_address_payable",
																											"typeString": "address payable"
																										}
																									],
																									"id": 10394,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "12989:8:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_address_payable_$",
																										"typeString": "type(address payable)"
																									},
																									"typeName": {
																										"id": 10393,
																										"name": "address",
																										"nodeType": "ElementaryTypeName",
																										"src": "12989:8:23",
																										"stateMutability": "payable",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 10396,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "12989:31:23",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								}
																							},
																							"id": 10397,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberLocation": "13021:8:23",
																							"memberName": "transfer",
																							"nodeType": "MemberAccess",
																							"src": "12989:40:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
																								"typeString": "function (uint256)"
																							}
																						},
																						"id": 10399,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "12989:57:23",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_tuple$__$",
																							"typeString": "tuple()"
																						}
																					},
																					"id": 10400,
																					"nodeType": "ExpressionStatement",
																					"src": "12989:57:23"
																				},
																				{
																					"expression": {
																						"arguments": [
																							{
																								"id": 10406,
																								"name": "totalOrga",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10385,
																								"src": "13112:9:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"expression": {
																								"arguments": [
																									{
																										"id": 10403,
																										"name": "organizerPaymentSplitter",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 9566,
																										"src": "13077:24:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_address_payable",
																											"typeString": "address payable"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_address_payable",
																											"typeString": "address payable"
																										}
																									],
																									"id": 10402,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "13069:8:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_address_payable_$",
																										"typeString": "type(address payable)"
																									},
																									"typeName": {
																										"id": 10401,
																										"name": "address",
																										"nodeType": "ElementaryTypeName",
																										"src": "13069:8:23",
																										"stateMutability": "payable",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 10404,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"nameLocations": [],
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "13069:33:23",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								}
																							},
																							"id": 10405,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberLocation": "13103:8:23",
																							"memberName": "transfer",
																							"nodeType": "MemberAccess",
																							"src": "13069:42:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
																								"typeString": "function (uint256)"
																							}
																						},
																						"id": 10407,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "13069:53:23",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_tuple$__$",
																							"typeString": "tuple()"
																						}
																					},
																					"id": 10408,
																					"nodeType": "ExpressionStatement",
																					"src": "13069:53:23"
																				}
																			]
																		}
																	}
																]
															},
															"id": 10412,
															"nodeType": "IfStatement",
															"src": "12175:980:23",
															"trueBody": {
																"id": 10377,
																"nodeType": "Block",
																"src": "12190:560:23",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 10338,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"id": 10336,
																				"name": "pricePerTicket",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10125,
																				"src": "12230:14:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 10337,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "12245:1:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "12230:16:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10376,
																		"nodeType": "IfStatement",
																		"src": "12226:510:23",
																		"trueBody": {
																			"id": 10375,
																			"nodeType": "Block",
																			"src": "12247:489:23",
																			"statements": [
																				{
																					"assignments": [
																						10340
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 10340,
																							"mutability": "mutable",
																							"name": "totalForTixSell",
																							"nameLocation": "12366:15:23",
																							"nodeType": "VariableDeclaration",
																							"scope": 10375,
																							"src": "12358:23:23",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 10339,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "12358:7:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 10347,
																					"initialValue": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 10346,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 10343,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 10341,
																										"name": "amountPercent",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 10328,
																										"src": "12385:13:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "+",
																									"rightExpression": {
																										"id": 10342,
																										"name": "fixFee",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 10249,
																										"src": "12399:6:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "12385:20:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 10344,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "12384:22:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "/",
																						"rightExpression": {
																							"hexValue": "31653132",
																							"id": 10345,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "12407:4:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1000000000000_by_1",
																								"typeString": "int_const 1000000000000"
																							},
																							"value": "1e12"
																						},
																						"src": "12384:27:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "12358:53:23"
																				},
																				{
																					"assignments": [
																						10349
																					],
																					"declarations": [
																						{
																							"constant": false,
																							"id": 10349,
																							"mutability": "mutable",
																							"name": "totalOrga",
																							"nameLocation": "12442:9:23",
																							"nodeType": "VariableDeclaration",
																							"scope": 10375,
																							"src": "12434:17:23",
																							"stateVariable": false,
																							"storageLocation": "default",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							},
																							"typeName": {
																								"id": 10348,
																								"name": "uint256",
																								"nodeType": "ElementaryTypeName",
																								"src": "12434:7:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"visibility": "internal"
																						}
																					],
																					"id": 10356,
																					"initialValue": {
																						"commonType": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						},
																						"id": 10355,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"lValueRequested": false,
																						"leftExpression": {
																							"components": [
																								{
																									"commonType": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									},
																									"id": 10352,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": false,
																									"lValueRequested": false,
																									"leftExpression": {
																										"id": 10350,
																										"name": "unitPrice",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 10253,
																										"src": "12455:9:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"nodeType": "BinaryOperation",
																									"operator": "-",
																									"rightExpression": {
																										"id": 10351,
																										"name": "totalForTixSell",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 10340,
																										"src": "12467:15:23",
																										"typeDescriptions": {
																											"typeIdentifier": "t_uint256",
																											"typeString": "uint256"
																										}
																									},
																									"src": "12455:27:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								}
																							],
																							"id": 10353,
																							"isConstant": false,
																							"isInlineArray": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "TupleExpression",
																							"src": "12454:29:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"nodeType": "BinaryOperation",
																						"operator": "/",
																						"rightExpression": {
																							"hexValue": "31653132",
																							"id": 10354,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "number",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "12484:4:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_rational_1000000000000_by_1",
																								"typeString": "int_const 1000000000000"
																							},
																							"value": "1e12"
																						},
																						"src": "12454:34:23",
																						"typeDescriptions": {
																							"typeIdentifier": "t_uint256",
																							"typeString": "uint256"
																						}
																					},
																					"nodeType": "VariableDeclarationStatement",
																					"src": "12434:54:23"
																				},
																				{
																					"expression": {
																						"arguments": [
																							{
																								"expression": {
																									"id": 10360,
																									"name": "msg",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 4294967281,
																									"src": "12553:3:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_magic_message",
																										"typeString": "msg"
																									}
																								},
																								"id": 10361,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"memberLocation": "12557:6:23",
																								"memberName": "sender",
																								"nodeType": "MemberAccess",
																								"src": "12553:10:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_address",
																									"typeString": "address"
																								}
																							},
																							{
																								"id": 10362,
																								"name": "tixSellpaymentSplitter",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 9562,
																								"src": "12564:22:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								}
																							},
																							{
																								"id": 10363,
																								"name": "totalForTixSell",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10340,
																								"src": "12588:15:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_address",
																									"typeString": "address"
																								},
																								{
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								},
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"expression": {
																								"id": 10357,
																								"name": "paytoken",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10093,
																								"src": "12531:8:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_contract$_IERC20_$807",
																									"typeString": "contract IERC20"
																								}
																							},
																							"id": 10359,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberLocation": "12540:12:23",
																							"memberName": "transferFrom",
																							"nodeType": "MemberAccess",
																							"referencedDeclaration": 806,
																							"src": "12531:21:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																								"typeString": "function (address,address,uint256) external returns (bool)"
																							}
																						},
																						"id": 10364,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "12531:73:23",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"id": 10365,
																					"nodeType": "ExpressionStatement",
																					"src": "12531:73:23"
																				},
																				{
																					"expression": {
																						"arguments": [
																							{
																								"expression": {
																									"id": 10369,
																									"name": "msg",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 4294967281,
																									"src": "12648:3:23",
																									"typeDescriptions": {
																										"typeIdentifier": "t_magic_message",
																										"typeString": "msg"
																									}
																								},
																								"id": 10370,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"lValueRequested": false,
																								"memberLocation": "12652:6:23",
																								"memberName": "sender",
																								"nodeType": "MemberAccess",
																								"src": "12648:10:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_address",
																									"typeString": "address"
																								}
																							},
																							{
																								"id": 10371,
																								"name": "organizerPaymentSplitter",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 9566,
																								"src": "12660:24:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								}
																							},
																							{
																								"id": 10372,
																								"name": "totalOrga",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10349,
																								"src": "12685:9:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_address",
																									"typeString": "address"
																								},
																								{
																									"typeIdentifier": "t_address_payable",
																									"typeString": "address payable"
																								},
																								{
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							],
																							"expression": {
																								"id": 10366,
																								"name": "paytoken",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 10093,
																								"src": "12626:8:23",
																								"typeDescriptions": {
																									"typeIdentifier": "t_contract$_IERC20_$807",
																									"typeString": "contract IERC20"
																								}
																							},
																							"id": 10368,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberLocation": "12635:12:23",
																							"memberName": "transferFrom",
																							"nodeType": "MemberAccess",
																							"referencedDeclaration": 806,
																							"src": "12626:21:23",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																								"typeString": "function (address,address,uint256) external returns (bool)"
																							}
																						},
																						"id": 10373,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"nameLocations": [],
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "12626:69:23",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_bool",
																							"typeString": "bool"
																						}
																					},
																					"id": 10374,
																					"nodeType": "ExpressionStatement",
																					"src": "12626:69:23"
																				}
																			]
																		}
																	}
																]
															}
														},
														{
															"expression": {
																"arguments": [
																	{
																		"expression": {
																			"id": 10414,
																			"name": "msg",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967281,
																			"src": "13180:3:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_magic_message",
																				"typeString": "msg"
																			}
																		},
																		"id": 10415,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "13184:6:23",
																		"memberName": "sender",
																		"nodeType": "MemberAccess",
																		"src": "13180:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 10416,
																		"name": "_ticketTypeId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10062,
																		"src": "13191:13:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 10417,
																		"name": "pricePerTicket",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10125,
																		"src": "13205:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 10413,
																	"name": "mintTicket",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10013,
																	"src": "13169:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (address,uint256,uint256)"
																	}
																},
																"id": 10418,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "13169:51:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10419,
															"nodeType": "ExpressionStatement",
															"src": "13169:51:23"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10244,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10242,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10239,
														"src": "10971:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 10243,
														"name": "amount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10088,
														"src": "10975:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "10971:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10421,
												"initializationExpression": {
													"assignments": [
														10239
													],
													"declarations": [
														{
															"constant": false,
															"id": 10239,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "10964:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 10421,
															"src": "10956:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 10238,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "10956:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 10241,
													"initialValue": {
														"hexValue": "30",
														"id": 10240,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "10968:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "10956:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 10246,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "10983:3:23",
														"subExpression": {
															"id": 10245,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10239,
															"src": "10983:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 10247,
													"nodeType": "ExpressionStatement",
													"src": "10983:3:23"
												},
												"nodeType": "ForStatement",
												"src": "10951:2280:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10425,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10062,
															"src": "13345:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10426,
															"name": "amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10088,
															"src": "13359:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10422,
															"name": "eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9575,
															"src": "13302:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														},
														"id": 10424,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "13316:28:23",
														"memberName": "addTicketTypesNbTicketMinted",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11704,
														"src": "13302:42:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (uint256,uint256) external"
														}
													},
													"id": 10427,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13302:64:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10428,
												"nodeType": "ExpressionStatement",
												"src": "13302:64:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10432,
															"name": "_reservationId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10060,
															"src": "13467:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														],
														"expression": {
															"id": 10429,
															"name": "ticketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9578,
															"src": "13425:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
																"typeString": "contract ITicketReservationContract"
															}
														},
														"id": 10431,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "13451:15:23",
														"memberName": "burnReservation",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11739,
														"src": "13425:41:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (string memory) external"
														}
													},
													"id": 10433,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13425:57:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10434,
												"nodeType": "ExpressionStatement",
												"src": "13425:57:23"
											}
										]
									},
									"functionSelector": "7247b789",
									"id": 10436,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "buyTicket",
									"nameLocation": "8446:9:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10069,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10060,
												"mutability": "mutable",
												"name": "_reservationId",
												"nameLocation": "8470:14:23",
												"nodeType": "VariableDeclaration",
												"scope": 10436,
												"src": "8456:28:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10059,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8456:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10062,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "8493:13:23",
												"nodeType": "VariableDeclaration",
												"scope": 10436,
												"src": "8485:21:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10061,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8485:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10064,
												"mutability": "mutable",
												"name": "_amount",
												"nameLocation": "8515:7:23",
												"nodeType": "VariableDeclaration",
												"scope": 10436,
												"src": "8507:15:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10063,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8507:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10066,
												"mutability": "mutable",
												"name": "_withERC20",
												"nameLocation": "8528:10:23",
												"nodeType": "VariableDeclaration",
												"scope": 10436,
												"src": "8523:15:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10065,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8523:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10068,
												"mutability": "mutable",
												"name": "_cryptoId",
												"nameLocation": "8547:9:23",
												"nodeType": "VariableDeclaration",
												"scope": 10436,
												"src": "8539:17:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10067,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8539:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8455:102:23"
									},
									"returnParameters": {
										"id": 10070,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8580:0:23"
									},
									"scope": 11013,
									"src": "8437:5061:23",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10461,
										"nodeType": "Block",
										"src": "13618:239:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 10448,
															"name": "_reservationNumber",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10438,
															"src": "13740:18:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														},
														{
															"expression": {
																"id": 10449,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "13759:3:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 10450,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "13763:6:23",
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "13759:10:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 10451,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10440,
															"src": "13770:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10452,
															"name": "_amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10442,
															"src": "13784:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"baseExpression": {
																"baseExpression": {
																	"id": 10453,
																	"name": "nbTicketForUserAndTicketTypes",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9627,
																	"src": "13793:29:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
																		"typeString": "mapping(address => mapping(uint256 => uint256))"
																	}
																},
																"id": 10456,
																"indexExpression": {
																	"expression": {
																		"id": 10454,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "13823:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 10455,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "13827:6:23",
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "13823:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "13793:41:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
																	"typeString": "mapping(uint256 => uint256)"
																}
															},
															"id": 10458,
															"indexExpression": {
																"id": 10457,
																"name": "_ticketTypeId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10440,
																"src": "13835:13:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "13793:56:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10445,
															"name": "ticketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9578,
															"src": "13690:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
																"typeString": "contract ITicketReservationContract"
															}
														},
														"id": 10447,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "13716:23:23",
														"memberName": "createReservationNumber",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11721,
														"src": "13690:49:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (string memory,address,uint256,uint256,uint256) external"
														}
													},
													"id": 10459,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13690:160:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10460,
												"nodeType": "ExpressionStatement",
												"src": "13690:160:23"
											}
										]
									},
									"functionSelector": "5f0d5b85",
									"id": 10462,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "createReservation",
									"nameLocation": "13517:17:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10443,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10438,
												"mutability": "mutable",
												"name": "_reservationNumber",
												"nameLocation": "13549:18:23",
												"nodeType": "VariableDeclaration",
												"scope": 10462,
												"src": "13535:32:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10437,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13535:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10440,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "13577:13:23",
												"nodeType": "VariableDeclaration",
												"scope": 10462,
												"src": "13569:21:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10439,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13569:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10442,
												"mutability": "mutable",
												"name": "_amount",
												"nameLocation": "13600:7:23",
												"nodeType": "VariableDeclaration",
												"scope": 10462,
												"src": "13592:15:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10441,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "13592:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13534:74:23"
									},
									"returnParameters": {
										"id": 10444,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13618:0:23"
									},
									"scope": 11013,
									"src": "13508:349:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10545,
										"nodeType": "Block",
										"src": "14035:993:23",
										"statements": [
											{
												"assignments": [
													10475
												],
												"declarations": [
													{
														"constant": false,
														"id": 10475,
														"mutability": "mutable",
														"name": "reservation",
														"nameLocation": "14096:11:23",
														"nodeType": "VariableDeclaration",
														"scope": 10545,
														"src": "14045:62:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
															"typeString": "struct TixSellReservationLibrary.TicketReservation"
														},
														"typeName": {
															"id": 10474,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10473,
																"name": "TixSellReservationLibrary.TicketReservation",
																"nameLocations": [
																	"14045:25:23",
																	"14071:17:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11154,
																"src": "14045:43:23"
															},
															"referencedDeclaration": 11154,
															"src": "14045:43:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketReservation_$11154_storage_ptr",
																"typeString": "struct TixSellReservationLibrary.TicketReservation"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10480,
												"initialValue": {
													"arguments": [
														{
															"id": 10478,
															"name": "_reservationId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10464,
															"src": "14153:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														],
														"expression": {
															"id": 10476,
															"name": "ticketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9578,
															"src": "14110:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
																"typeString": "contract ITicketReservationContract"
															}
														},
														"id": 10477,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "14136:16:23",
														"memberName": "checkReservation",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11734,
														"src": "14110:42:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_struct$_TicketReservation_$11154_memory_ptr_$",
															"typeString": "function (string memory) view external returns (struct TixSellReservationLibrary.TicketReservation memory)"
														}
													},
													"id": 10479,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14110:58:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
														"typeString": "struct TixSellReservationLibrary.TicketReservation memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "14045:123:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"expression": {
																"id": 10482,
																"name": "reservation",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10475,
																"src": "14186:11:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
																	"typeString": "struct TixSellReservationLibrary.TicketReservation memory"
																}
															},
															"id": 10483,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "14198:6:23",
															"memberName": "exists",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 11153,
															"src": "14186:18:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "496e76616c6964207265736572766174696f6e206e756d626572",
															"id": 10484,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "14205:28:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_20e66d7783ccf178c9592c13b4f45e553dc541032dd5fbce67d36eff41e54812",
																"typeString": "literal_string \"Invalid reservation number\""
															},
															"value": "Invalid reservation number"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_20e66d7783ccf178c9592c13b4f45e553dc541032dd5fbce67d36eff41e54812",
																"typeString": "literal_string \"Invalid reservation number\""
															}
														],
														"id": 10481,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "14178:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 10485,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14178:56:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10486,
												"nodeType": "ExpressionStatement",
												"src": "14178:56:23"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10491,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 10487,
															"name": "reservation",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10475,
															"src": "14305:11:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
																"typeString": "struct TixSellReservationLibrary.TicketReservation memory"
															}
														},
														"id": 10488,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "14317:14:23",
														"memberName": "expirationDate",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11145,
														"src": "14305:26:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 10489,
															"name": "block",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967292,
															"src": "14332:5:23",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_block",
																"typeString": "block"
															}
														},
														"id": 10490,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "14338:9:23",
														"memberName": "timestamp",
														"nodeType": "MemberAccess",
														"src": "14332:15:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "14305:42:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10497,
												"nodeType": "IfStatement",
												"src": "14302:124:23",
												"trueBody": {
													"id": 10496,
													"nodeType": "Block",
													"src": "14348:78:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"hexValue": "5265736572766174696f6e2065787069726564",
																		"id": 10493,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "14393:21:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_2960f897a673b156aba56b0819947663825c313b5874c53d3e908caade93ab37",
																			"typeString": "literal_string \"Reservation expired\""
																		},
																		"value": "Reservation expired"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_stringliteral_2960f897a673b156aba56b0819947663825c313b5874c53d3e908caade93ab37",
																			"typeString": "literal_string \"Reservation expired\""
																		}
																	],
																	"id": 10492,
																	"name": "revert",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967277,
																		4294967277
																	],
																	"referencedDeclaration": 4294967277,
																	"src": "14386:6:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (string memory) pure"
																	}
																},
																"id": 10494,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "14386:29:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10495,
															"nodeType": "ExpressionStatement",
															"src": "14386:29:23"
														}
													]
												}
											},
											{
												"assignments": [
													10499
												],
												"declarations": [
													{
														"constant": false,
														"id": 10499,
														"mutability": "mutable",
														"name": "amount",
														"nameLocation": "14508:6:23",
														"nodeType": "VariableDeclaration",
														"scope": 10545,
														"src": "14500:14:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10498,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "14500:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10502,
												"initialValue": {
													"expression": {
														"id": 10500,
														"name": "reservation",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10475,
														"src": "14517:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
															"typeString": "struct TixSellReservationLibrary.TicketReservation memory"
														}
													},
													"id": 10501,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "14529:6:23",
													"memberName": "amount",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 11147,
													"src": "14517:18:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "14500:35:23"
											},
											{
												"assignments": [
													10504
												],
												"declarations": [
													{
														"constant": false,
														"id": 10504,
														"mutability": "mutable",
														"name": "ticketTypeId",
														"nameLocation": "14554:12:23",
														"nodeType": "VariableDeclaration",
														"scope": 10545,
														"src": "14546:20:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10503,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "14546:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10507,
												"initialValue": {
													"expression": {
														"id": 10505,
														"name": "reservation",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10475,
														"src": "14569:11:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
															"typeString": "struct TixSellReservationLibrary.TicketReservation memory"
														}
													},
													"id": 10506,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "14581:12:23",
													"memberName": "ticketTypeId",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 11149,
													"src": "14569:24:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "14546:47:23"
											},
											{
												"assignments": [
													10509
												],
												"declarations": [
													{
														"constant": false,
														"id": 10509,
														"mutability": "mutable",
														"name": "pricePerTicket",
														"nameLocation": "14613:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10545,
														"src": "14605:22:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10508,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "14605:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10513,
												"initialValue": {
													"arguments": [
														{
															"id": 10511,
															"name": "ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10504,
															"src": "14646:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 10510,
														"name": "getTicketsPrice",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10058,
														"src": "14630:15:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (uint256) view returns (uint256)"
														}
													},
													"id": 10512,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14630:29:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "14605:54:23"
											},
											{
												"body": {
													"id": 10530,
													"nodeType": "Block",
													"src": "14715:68:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 10525,
																		"name": "_to",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10466,
																		"src": "14740:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 10526,
																		"name": "ticketTypeId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10504,
																		"src": "14744:12:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 10527,
																		"name": "pricePerTicket",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10509,
																		"src": "14757:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 10524,
																	"name": "mintTicket",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10013,
																	"src": "14729:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (address,uint256,uint256)"
																	}
																},
																"id": 10528,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "14729:43:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10529,
															"nodeType": "ExpressionStatement",
															"src": "14729:43:23"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10520,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10518,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10515,
														"src": "14698:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 10519,
														"name": "amount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10499,
														"src": "14702:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "14698:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10531,
												"initializationExpression": {
													"assignments": [
														10515
													],
													"declarations": [
														{
															"constant": false,
															"id": 10515,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "14691:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 10531,
															"src": "14683:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 10514,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "14683:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 10517,
													"initialValue": {
														"hexValue": "30",
														"id": 10516,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "14695:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "14683:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 10522,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "14710:3:23",
														"subExpression": {
															"id": 10521,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10515,
															"src": "14710:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 10523,
													"nodeType": "ExpressionStatement",
													"src": "14710:3:23"
												},
												"nodeType": "ForStatement",
												"src": "14678:105:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10535,
															"name": "ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10504,
															"src": "14889:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10536,
															"name": "amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10499,
															"src": "14902:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10532,
															"name": "eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9575,
															"src": "14846:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														},
														"id": 10534,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "14860:28:23",
														"memberName": "addTicketTypesNbTicketMinted",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11704,
														"src": "14846:42:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (uint256,uint256) external"
														}
													},
													"id": 10537,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14846:63:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10538,
												"nodeType": "ExpressionStatement",
												"src": "14846:63:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10542,
															"name": "_reservationId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10464,
															"src": "15005:14:23",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														],
														"expression": {
															"id": 10539,
															"name": "ticketReservationContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9578,
															"src": "14963:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketReservationContract_$11740",
																"typeString": "contract ITicketReservationContract"
															}
														},
														"id": 10541,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "14989:15:23",
														"memberName": "burnReservation",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11739,
														"src": "14963:41:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (string memory) external"
														}
													},
													"id": 10543,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14963:57:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10544,
												"nodeType": "ExpressionStatement",
												"src": "14963:57:23"
											}
										]
									},
									"functionSelector": "6f269b7a",
									"id": 10546,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"arguments": [],
											"id": 10469,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 10468,
												"name": "onlyAdmin",
												"nameLocations": [
													"14017:9:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9667,
												"src": "14017:9:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "14017:11:23"
										}
									],
									"name": "mintTicket",
									"nameLocation": "13955:10:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10467,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10464,
												"mutability": "mutable",
												"name": "_reservationId",
												"nameLocation": "13980:14:23",
												"nodeType": "VariableDeclaration",
												"scope": 10546,
												"src": "13966:28:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10463,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13966:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10466,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "14003:3:23",
												"nodeType": "VariableDeclaration",
												"scope": 10546,
												"src": "13995:11:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10465,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13995:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13965:42:23"
									},
									"returnParameters": {
										"id": 10470,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14035:0:23"
									},
									"scope": 11013,
									"src": "13946:1082:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10588,
										"nodeType": "Block",
										"src": "15135:313:23",
										"statements": [
											{
												"assignments": [
													10558
												],
												"declarations": [
													{
														"constant": false,
														"id": 10558,
														"mutability": "mutable",
														"name": "pricePerTicket",
														"nameLocation": "15153:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10588,
														"src": "15145:22:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10557,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "15145:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10562,
												"initialValue": {
													"arguments": [
														{
															"id": 10560,
															"name": "ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10552,
															"src": "15186:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 10559,
														"name": "getTicketsPrice",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10058,
														"src": "15170:15:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (uint256) view returns (uint256)"
														}
													},
													"id": 10561,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15170:29:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "15145:54:23"
											},
											{
												"body": {
													"id": 10579,
													"nodeType": "Block",
													"src": "15247:68:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 10574,
																		"name": "_to",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10548,
																		"src": "15272:3:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 10575,
																		"name": "ticketTypeId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10552,
																		"src": "15276:12:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 10576,
																		"name": "pricePerTicket",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10558,
																		"src": "15289:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 10573,
																	"name": "mintTicket",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10013,
																	"src": "15261:10:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
																		"typeString": "function (address,uint256,uint256)"
																	}
																},
																"id": 10577,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "15261:43:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10578,
															"nodeType": "ExpressionStatement",
															"src": "15261:43:23"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10569,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10567,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10564,
														"src": "15230:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 10568,
														"name": "amount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10550,
														"src": "15234:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "15230:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10580,
												"initializationExpression": {
													"assignments": [
														10564
													],
													"declarations": [
														{
															"constant": false,
															"id": 10564,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "15223:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 10580,
															"src": "15215:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 10563,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "15215:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 10566,
													"initialValue": {
														"hexValue": "30",
														"id": 10565,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "15227:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "15215:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 10571,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "15242:3:23",
														"subExpression": {
															"id": 10570,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10564,
															"src": "15242:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 10572,
													"nodeType": "ExpressionStatement",
													"src": "15242:3:23"
												},
												"nodeType": "ForStatement",
												"src": "15210:105:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10584,
															"name": "ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10552,
															"src": "15421:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 10585,
															"name": "amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10550,
															"src": "15434:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10581,
															"name": "eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9575,
															"src": "15378:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														},
														"id": 10583,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "15392:28:23",
														"memberName": "addTicketTypesNbTicketMinted",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11704,
														"src": "15378:42:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
															"typeString": "function (uint256,uint256) external"
														}
													},
													"id": 10586,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15378:63:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10587,
												"nodeType": "ExpressionStatement",
												"src": "15378:63:23"
											}
										]
									},
									"functionSelector": "6e754d3d",
									"id": 10589,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"arguments": [],
											"id": 10555,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 10554,
												"name": "onlyAdmin",
												"nameLocations": [
													"15117:9:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 9667,
												"src": "15117:9:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "15117:11:23"
										}
									],
									"name": "mintTicketAdmin",
									"nameLocation": "15043:15:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10553,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10548,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "15067:3:23",
												"nodeType": "VariableDeclaration",
												"scope": 10589,
												"src": "15059:11:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10547,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15059:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10550,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "15079:6:23",
												"nodeType": "VariableDeclaration",
												"scope": 10589,
												"src": "15071:14:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10549,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "15071:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10552,
												"mutability": "mutable",
												"name": "ticketTypeId",
												"nameLocation": "15094:12:23",
												"nodeType": "VariableDeclaration",
												"scope": 10589,
												"src": "15086:20:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10551,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "15086:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15058:49:23"
									},
									"returnParameters": {
										"id": 10556,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15135:0:23"
									},
									"scope": 11013,
									"src": "15034:414:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"baseFunctions": [
										1329
									],
									"body": {
										"id": 10708,
										"nodeType": "Block",
										"src": "15592:1630:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 10605,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"arguments": [
																	{
																		"id": 10599,
																		"name": "_tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10591,
																		"src": "15631:8:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 10598,
																	"name": "_ownerOf",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1507,
																	"src": "15622:8:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
																		"typeString": "function (uint256) view returns (address)"
																	}
																},
																"id": 10600,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "15622:18:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 10603,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "15652:1:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 10602,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "15644:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 10601,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "15644:7:23",
																		"typeDescriptions": {}
																	}
																},
																"id": 10604,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "15644:10:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "15622:32:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e",
															"id": 10606,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "15668:49:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb",
																"typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\""
															},
															"value": "ERC721Metadata: URI query for nonexistent token"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb",
																"typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\""
															}
														],
														"id": 10597,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "15602:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 10607,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15602:125:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10608,
												"nodeType": "ExpressionStatement",
												"src": "15602:125:23"
											},
											{
												"assignments": [
													10611
												],
												"declarations": [
													{
														"constant": false,
														"id": 10611,
														"mutability": "mutable",
														"name": "theTicket",
														"nameLocation": "15831:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10708,
														"src": "15817:23:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
															"typeString": "struct TicketContract.Ticket"
														},
														"typeName": {
															"id": 10610,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10609,
																"name": "Ticket",
																"nameLocations": [
																	"15817:6:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 9608,
																"src": "15817:6:23"
															},
															"referencedDeclaration": 9608,
															"src": "15817:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																"typeString": "struct TicketContract.Ticket"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10615,
												"initialValue": {
													"baseExpression": {
														"id": 10612,
														"name": "tickets",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9613,
														"src": "15843:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
															"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
														}
													},
													"id": 10614,
													"indexExpression": {
														"id": 10613,
														"name": "_tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10591,
														"src": "15851:8:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "15843:17:23",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Ticket_$9608_storage",
														"typeString": "struct TicketContract.Ticket storage ref"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "15817:43:23"
											},
											{
												"assignments": [
													10620
												],
												"declarations": [
													{
														"constant": false,
														"id": 10620,
														"mutability": "mutable",
														"name": "theTicketType",
														"nameLocation": "15903:13:23",
														"nodeType": "VariableDeclaration",
														"scope": 10708,
														"src": "15870:46:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType"
														},
														"typeName": {
															"id": 10619,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10618,
																"name": "TixSellLibrary.TicketType",
																"nameLocations": [
																	"15870:14:23",
																	"15885:10:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11116,
																"src": "15870:25:23"
															},
															"referencedDeclaration": 11116,
															"src": "15870:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
																"typeString": "struct TixSellLibrary.TicketType"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10630,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"id": 10627,
																"name": "theTicket",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10611,
																"src": "15997:9:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
																	"typeString": "struct TicketContract.Ticket memory"
																}
															},
															"id": 10628,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "16007:12:23",
															"memberName": "ticketTypeId",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 9595,
															"src": "15997:22:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"expression": {
																			"id": 10622,
																			"name": "eventContract",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9575,
																			"src": "15940:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IEventContract_$11705",
																				"typeString": "contract IEventContract"
																			}
																		},
																		"id": 10623,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "15954:21:23",
																		"memberName": "getTicketTypeContract",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11676,
																		"src": "15940:35:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
																			"typeString": "function () view external returns (address)"
																		}
																	},
																	"id": 10624,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "15940:37:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 10621,
																"name": "ITicketTypeContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11774,
																"src": "15920:19:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_ITicketTypeContract_$11774_$",
																	"typeString": "type(contract ITicketTypeContract)"
																}
															},
															"id": 10625,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15920:58:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketTypeContract_$11774",
																"typeString": "contract ITicketTypeContract"
															}
														},
														"id": 10626,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "15979:17:23",
														"memberName": "getTicketTypeInfo",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11766,
														"src": "15920:76:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_TicketType_$11116_memory_ptr_$",
															"typeString": "function (uint256) view external returns (struct TixSellLibrary.TicketType memory)"
														}
													},
													"id": 10629,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15920:100:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
														"typeString": "struct TixSellLibrary.TicketType memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "15870:150:23"
											},
											{
												"assignments": [
													10632
												],
												"declarations": [
													{
														"constant": false,
														"id": 10632,
														"mutability": "mutable",
														"name": "canReveal",
														"nameLocation": "16035:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10708,
														"src": "16030:14:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 10631,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "16030:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10634,
												"initialValue": {
													"hexValue": "74727565",
													"id": 10633,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "bool",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "16045:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"value": "true"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "16030:19:23"
											},
											{
												"condition": {
													"id": 10637,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "16063:23:23",
													"subExpression": {
														"expression": {
															"id": 10635,
															"name": "theTicketType",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10620,
															"src": "16064:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																"typeString": "struct TixSellLibrary.TicketType memory"
															}
														},
														"id": 10636,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "16078:8:23",
														"memberName": "revealed",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11084,
														"src": "16064:22:23",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10655,
												"nodeType": "IfStatement",
												"src": "16059:257:23",
												"trueBody": {
													"id": 10654,
													"nodeType": "Block",
													"src": "16087:229:23",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 10642,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 10638,
																		"name": "theTicketType",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10620,
																		"src": "16139:13:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																			"typeString": "struct TixSellLibrary.TicketType memory"
																		}
																	},
																	"id": 10639,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "16153:15:23",
																	"memberName": "revealStartDate",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 11086,
																	"src": "16139:29:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "<",
																"rightExpression": {
																	"expression": {
																		"id": 10640,
																		"name": "block",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967292,
																		"src": "16171:5:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_block",
																			"typeString": "block"
																		}
																	},
																	"id": 10641,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "16177:9:23",
																	"memberName": "timestamp",
																	"nodeType": "MemberAccess",
																	"src": "16171:15:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "16139:47:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 10652,
																"nodeType": "Block",
																"src": "16255:51:23",
																"statements": [
																	{
																		"expression": {
																			"id": 10650,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10648,
																				"name": "canReveal",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10632,
																				"src": "16273:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"hexValue": "66616c7365",
																				"id": 10649,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "bool",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "16285:5:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"value": "false"
																			},
																			"src": "16273:17:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10651,
																		"nodeType": "ExpressionStatement",
																		"src": "16273:17:23"
																	}
																]
															},
															"id": 10653,
															"nodeType": "IfStatement",
															"src": "16135:171:23",
															"trueBody": {
																"id": 10647,
																"nodeType": "Block",
																"src": "16187:50:23",
																"statements": [
																	{
																		"expression": {
																			"id": 10645,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10643,
																				"name": "canReveal",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10632,
																				"src": "16205:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"hexValue": "74727565",
																				"id": 10644,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "bool",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "16217:4:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bool",
																					"typeString": "bool"
																				},
																				"value": "true"
																			},
																			"src": "16205:16:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"id": 10646,
																		"nodeType": "ExpressionStatement",
																		"src": "16205:16:23"
																	}
																]
															}
														}
													]
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10664,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"arguments": [
																{
																	"baseExpression": {
																		"id": 10658,
																		"name": "ticketSpecificUri",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9617,
																		"src": "16340:17:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
																			"typeString": "mapping(uint256 => string storage ref)"
																		}
																	},
																	"id": 10660,
																	"indexExpression": {
																		"id": 10659,
																		"name": "_tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10591,
																		"src": "16358:8:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "16340:27:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_storage",
																		"typeString": "string storage ref"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_string_storage",
																		"typeString": "string storage ref"
																	}
																],
																"id": 10657,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "16334:5:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
																	"typeString": "type(bytes storage pointer)"
																},
																"typeName": {
																	"id": 10656,
																	"name": "bytes",
																	"nodeType": "ElementaryTypeName",
																	"src": "16334:5:23",
																	"typeDescriptions": {}
																}
															},
															"id": 10661,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16334:34:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes storage pointer"
															}
														},
														"id": 10662,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "16369:6:23",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "16334:41:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "30",
														"id": 10663,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "16376:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "16334:43:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 10706,
													"nodeType": "Block",
													"src": "16463:744:23",
													"statements": [
														{
															"assignments": [
																10674
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 10674,
																	"mutability": "mutable",
																	"name": "_nftTicketInfo",
																	"nameLocation": "16594:14:23",
																	"nodeType": "VariableDeclaration",
																	"scope": 10706,
																	"src": "16558:50:23",
																	"stateVariable": false,
																	"storageLocation": "memory",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_NftTicketInfo_$11134_memory_ptr",
																		"typeString": "struct TixSellLibrary.NftTicketInfo"
																	},
																	"typeName": {
																		"id": 10673,
																		"nodeType": "UserDefinedTypeName",
																		"pathNode": {
																			"id": 10672,
																			"name": "TixSellLibrary.NftTicketInfo",
																			"nameLocations": [
																				"16558:14:23",
																				"16573:13:23"
																			],
																			"nodeType": "IdentifierPath",
																			"referencedDeclaration": 11134,
																			"src": "16558:28:23"
																		},
																		"referencedDeclaration": 11134,
																		"src": "16558:28:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_NftTicketInfo_$11134_storage_ptr",
																			"typeString": "struct TixSellLibrary.NftTicketInfo"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 10695,
															"initialValue": {
																"arguments": [
																	{
																		"expression": {
																			"id": 10677,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "16666:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10678,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16680:10:23",
																		"memberName": "templateId",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11100,
																		"src": "16666:24:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"id": 10679,
																		"name": "_tokenId",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10591,
																		"src": "16716:8:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"expression": {
																			"id": 10680,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "16750:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10681,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16764:9:23",
																		"memberName": "hiddenuri",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11110,
																		"src": "16750:23:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		}
																	},
																	{
																		"expression": {
																			"arguments": [],
																			"expression": {
																				"argumentTypes": [],
																				"expression": {
																					"id": 10682,
																					"name": "eventContract",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 9575,
																					"src": "16799:13:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_contract$_IEventContract_$11705",
																						"typeString": "contract IEventContract"
																					}
																				},
																				"id": 10683,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "16813:8:23",
																				"memberName": "getEvent",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 11671,
																				"src": "16799:22:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_external_view$__$returns$_t_struct$_Event_$11036_memory_ptr_$",
																					"typeString": "function () view external returns (struct TixSellEventLibrary.Event memory)"
																				}
																			},
																			"id": 10684,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "16799:24:23",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_Event_$11036_memory_ptr",
																				"typeString": "struct TixSellEventLibrary.Event memory"
																			}
																		},
																		"id": 10685,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16824:9:23",
																		"memberName": "eventDate",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11022,
																		"src": "16799:34:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	{
																		"expression": {
																			"id": 10686,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "16859:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10687,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16873:16:23",
																		"memberName": "ticketDesignInfo",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11115,
																		"src": "16859:30:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_memory_ptr",
																			"typeString": "struct TixSellLibrary.TicketDesignInfo memory"
																		}
																	},
																	{
																		"expression": {
																			"id": 10688,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "16915:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10689,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16929:9:23",
																		"memberName": "freeDrink",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11104,
																		"src": "16915:23:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"expression": {
																			"id": 10690,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "16964:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10691,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "16978:13:23",
																		"memberName": "priorityQueue",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11106,
																		"src": "16964:27:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"expression": {
																			"id": 10692,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10620,
																			"src": "17017:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10693,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "17031:8:23",
																		"memberName": "sellable",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11088,
																		"src": "17017:22:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_string_memory_ptr",
																			"typeString": "string memory"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		{
																			"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_memory_ptr",
																			"typeString": "struct TixSellLibrary.TicketDesignInfo memory"
																		},
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	],
																	"expression": {
																		"id": 10675,
																		"name": "TixSellLibrary",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 11135,
																		"src": "16612:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_contract$_TixSellLibrary_$11135_$",
																			"typeString": "type(library TixSellLibrary)"
																		}
																	},
																	"id": 10676,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "16627:13:23",
																	"memberName": "NftTicketInfo",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 11134,
																	"src": "16612:28:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_struct$_NftTicketInfo_$11134_storage_ptr_$",
																		"typeString": "type(struct TixSellLibrary.NftTicketInfo storage pointer)"
																	}
																},
																"id": 10694,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "structConstructorCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "16612:468:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_NftTicketInfo_$11134_memory_ptr",
																	"typeString": "struct TixSellLibrary.NftTicketInfo memory"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "16558:522:23"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"id": 10700,
																				"name": "this",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967268,
																				"src": "17141:4:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_contract$_TicketContract_$11013",
																					"typeString": "contract TicketContract"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_contract$_TicketContract_$11013",
																					"typeString": "contract TicketContract"
																				}
																			],
																			"id": 10699,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"nodeType": "ElementaryTypeNameExpression",
																			"src": "17133:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_address_$",
																				"typeString": "type(address)"
																			},
																			"typeName": {
																				"id": 10698,
																				"name": "address",
																				"nodeType": "ElementaryTypeName",
																				"src": "17133:7:23",
																				"typeDescriptions": {}
																			}
																		},
																		"id": 10701,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "typeConversion",
																		"lValueRequested": false,
																		"nameLocations": [],
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "17133:13:23",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 10702,
																		"name": "_nftTicketInfo",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10674,
																		"src": "17147:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_NftTicketInfo_$11134_memory_ptr",
																			"typeString": "struct TixSellLibrary.NftTicketInfo memory"
																		}
																	},
																	{
																		"id": 10703,
																		"name": "canReveal",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 10632,
																		"src": "17162:9:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_struct$_NftTicketInfo_$11134_memory_ptr",
																			"typeString": "struct TixSellLibrary.NftTicketInfo memory"
																		},
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	],
																	"expression": {
																		"id": 10696,
																		"name": "nftTemplateContract",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9591,
																		"src": "17106:19:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_ITixSellNftTemplateContract_$11790",
																			"typeString": "contract ITixSellNftTemplateContract"
																		}
																	},
																	"id": 10697,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "17126:6:23",
																	"memberName": "getURI",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 11789,
																	"src": "17106:26:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_external_view$_t_address_$_t_struct$_NftTicketInfo_$11134_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$",
																		"typeString": "function (address,struct TixSellLibrary.NftTicketInfo memory,bool) view external returns (string memory)"
																	}
																},
																"id": 10704,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "17106:66:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_string_memory_ptr",
																	"typeString": "string memory"
																}
															},
															"functionReturnParameters": 10596,
															"id": 10705,
															"nodeType": "Return",
															"src": "17099:73:23"
														}
													]
												},
												"id": 10707,
												"nodeType": "IfStatement",
												"src": "16330:877:23",
												"trueBody": {
													"id": 10669,
													"nodeType": "Block",
													"src": "16378:68:23",
													"statements": [
														{
															"expression": {
																"baseExpression": {
																	"id": 10665,
																	"name": "ticketSpecificUri",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9617,
																	"src": "16403:17:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
																		"typeString": "mapping(uint256 => string storage ref)"
																	}
																},
																"id": 10667,
																"indexExpression": {
																	"id": 10666,
																	"name": "_tokenId",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10591,
																	"src": "16421:8:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "16403:27:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_string_storage",
																	"typeString": "string storage ref"
																}
															},
															"functionReturnParameters": 10596,
															"id": 10668,
															"nodeType": "Return",
															"src": "16396:34:23"
														}
													]
												}
											}
										]
									},
									"functionSelector": "c87b56dd",
									"id": 10709,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "tokenURI",
									"nameLocation": "15464:8:23",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 10593,
										"nodeType": "OverrideSpecifier",
										"overrides": [],
										"src": "15543:8:23"
									},
									"parameters": {
										"id": 10592,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10591,
												"mutability": "mutable",
												"name": "_tokenId",
												"nameLocation": "15481:8:23",
												"nodeType": "VariableDeclaration",
												"scope": 10709,
												"src": "15473:16:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10590,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "15473:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15472:18:23"
									},
									"returnParameters": {
										"id": 10596,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10595,
												"mutability": "mutable",
												"name": "uri",
												"nameLocation": "15583:3:23",
												"nodeType": "VariableDeclaration",
												"scope": 10709,
												"src": "15569:17:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10594,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15569:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15568:19:23"
									},
									"scope": 11013,
									"src": "15455:1767:23",
									"stateMutability": "view",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 10716,
										"nodeType": "Block",
										"src": "17292:35:23",
										"statements": [
											{
												"expression": {
													"id": 10714,
													"name": "_ticketIds",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9554,
													"src": "17310:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 10713,
												"id": 10715,
												"nodeType": "Return",
												"src": "17302:18:23"
											}
										]
									},
									"functionSelector": "4fdf4780",
									"id": 10717,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getTotalTicketsSold",
									"nameLocation": "17240:19:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10710,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17259:2:23"
									},
									"returnParameters": {
										"id": 10713,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10712,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10717,
												"src": "17283:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10711,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "17283:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17282:9:23"
									},
									"scope": 11013,
									"src": "17231:96:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 10817,
										"nodeType": "Block",
										"src": "17448:674:23",
										"statements": [
											{
												"assignments": [
													10727
												],
												"declarations": [
													{
														"constant": false,
														"id": 10727,
														"mutability": "mutable",
														"name": "totalItemCount",
														"nameLocation": "17466:14:23",
														"nodeType": "VariableDeclaration",
														"scope": 10817,
														"src": "17458:22:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10726,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "17458:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10729,
												"initialValue": {
													"id": 10728,
													"name": "_ticketIds",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9554,
													"src": "17483:10:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "17458:35:23"
											},
											{
												"assignments": [
													10731
												],
												"declarations": [
													{
														"constant": false,
														"id": 10731,
														"mutability": "mutable",
														"name": "itemCount",
														"nameLocation": "17511:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10817,
														"src": "17503:17:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10730,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "17503:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10733,
												"initialValue": {
													"hexValue": "30",
													"id": 10732,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "17523:1:23",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_0_by_1",
														"typeString": "int_const 0"
													},
													"value": "0"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "17503:21:23"
											},
											{
												"assignments": [
													10735
												],
												"declarations": [
													{
														"constant": false,
														"id": 10735,
														"mutability": "mutable",
														"name": "currentIndex",
														"nameLocation": "17542:12:23",
														"nodeType": "VariableDeclaration",
														"scope": 10817,
														"src": "17534:20:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10734,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "17534:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10737,
												"initialValue": {
													"hexValue": "30",
													"id": 10736,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "number",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "17557:1:23",
													"typeDescriptions": {
														"typeIdentifier": "t_rational_0_by_1",
														"typeString": "int_const 0"
													},
													"value": "0"
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "17534:24:23"
											},
											{
												"body": {
													"id": 10760,
													"nodeType": "Block",
													"src": "17613:111:23",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 10753,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"baseExpression": {
																			"id": 10748,
																			"name": "tickets",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9613,
																			"src": "17641:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
																				"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
																			}
																		},
																		"id": 10750,
																		"indexExpression": {
																			"id": 10749,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10739,
																			"src": "17649:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "17641:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_Ticket_$9608_storage",
																			"typeString": "struct TicketContract.Ticket storage ref"
																		}
																	},
																	"id": 10751,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "17652:5:23",
																	"memberName": "owner",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 9597,
																	"src": "17641:16:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"id": 10752,
																	"name": "_fan",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10719,
																	"src": "17661:4:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "17641:24:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 10759,
															"nodeType": "IfStatement",
															"src": "17637:77:23",
															"trueBody": {
																"id": 10758,
																"nodeType": "Block",
																"src": "17667:47:23",
																"statements": [
																	{
																		"expression": {
																			"id": 10756,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10754,
																				"name": "itemCount",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10731,
																				"src": "17685:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "+=",
																			"rightHandSide": {
																				"hexValue": "31",
																				"id": 10755,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "17698:1:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_1_by_1",
																					"typeString": "int_const 1"
																				},
																				"value": "1"
																			},
																			"src": "17685:14:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 10757,
																		"nodeType": "ExpressionStatement",
																		"src": "17685:14:23"
																	}
																]
															}
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10744,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10742,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10739,
														"src": "17589:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 10743,
														"name": "totalItemCount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10727,
														"src": "17592:14:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "17589:17:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10761,
												"initializationExpression": {
													"assignments": [
														10739
													],
													"declarations": [
														{
															"constant": false,
															"id": 10739,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "17582:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 10761,
															"src": "17574:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 10738,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "17574:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 10741,
													"initialValue": {
														"hexValue": "30",
														"id": 10740,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "17586:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "17574:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 10746,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "17608:3:23",
														"subExpression": {
															"id": 10745,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10739,
															"src": "17608:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 10747,
													"nodeType": "ExpressionStatement",
													"src": "17608:3:23"
												},
												"nodeType": "ForStatement",
												"src": "17569:155:23"
											},
											{
												"assignments": [
													10766
												],
												"declarations": [
													{
														"constant": false,
														"id": 10766,
														"mutability": "mutable",
														"name": "items",
														"nameLocation": "17750:5:23",
														"nodeType": "VariableDeclaration",
														"scope": 10817,
														"src": "17734:21:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr",
															"typeString": "struct TicketContract.Ticket[]"
														},
														"typeName": {
															"baseType": {
																"id": 10764,
																"nodeType": "UserDefinedTypeName",
																"pathNode": {
																	"id": 10763,
																	"name": "Ticket",
																	"nameLocations": [
																		"17734:6:23"
																	],
																	"nodeType": "IdentifierPath",
																	"referencedDeclaration": 9608,
																	"src": "17734:6:23"
																},
																"referencedDeclaration": 9608,
																"src": "17734:6:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																	"typeString": "struct TicketContract.Ticket"
																}
															},
															"id": 10765,
															"nodeType": "ArrayTypeName",
															"src": "17734:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_storage_$dyn_storage_ptr",
																"typeString": "struct TicketContract.Ticket[]"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10773,
												"initialValue": {
													"arguments": [
														{
															"id": 10771,
															"name": "itemCount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10731,
															"src": "17771:9:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 10770,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "NewExpression",
														"src": "17758:12:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr_$",
															"typeString": "function (uint256) pure returns (struct TicketContract.Ticket memory[] memory)"
														},
														"typeName": {
															"baseType": {
																"id": 10768,
																"nodeType": "UserDefinedTypeName",
																"pathNode": {
																	"id": 10767,
																	"name": "Ticket",
																	"nameLocations": [
																		"17762:6:23"
																	],
																	"nodeType": "IdentifierPath",
																	"referencedDeclaration": 9608,
																	"src": "17762:6:23"
																},
																"referencedDeclaration": 9608,
																"src": "17762:6:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																	"typeString": "struct TicketContract.Ticket"
																}
															},
															"id": 10769,
															"nodeType": "ArrayTypeName",
															"src": "17762:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_storage_$dyn_storage_ptr",
																"typeString": "struct TicketContract.Ticket[]"
															}
														}
													},
													"id": 10772,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17758:23:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr",
														"typeString": "struct TicketContract.Ticket memory[] memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "17734:47:23"
											},
											{
												"body": {
													"id": 10813,
													"nodeType": "Block",
													"src": "17836:258:23",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 10789,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"baseExpression": {
																			"id": 10784,
																			"name": "tickets",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9613,
																			"src": "17854:7:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
																				"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
																			}
																		},
																		"id": 10786,
																		"indexExpression": {
																			"id": 10785,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10775,
																			"src": "17862:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "17854:10:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_Ticket_$9608_storage",
																			"typeString": "struct TicketContract.Ticket storage ref"
																		}
																	},
																	"id": 10787,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberLocation": "17865:5:23",
																	"memberName": "owner",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 9597,
																	"src": "17854:16:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"id": 10788,
																	"name": "_fan",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10719,
																	"src": "17874:4:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "17854:24:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 10812,
															"nodeType": "IfStatement",
															"src": "17850:234:23",
															"trueBody": {
																"id": 10811,
																"nodeType": "Block",
																"src": "17880:204:23",
																"statements": [
																	{
																		"assignments": [
																			10791
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 10791,
																				"mutability": "mutable",
																				"name": "currentId",
																				"nameLocation": "17906:9:23",
																				"nodeType": "VariableDeclaration",
																				"scope": 10811,
																				"src": "17898:17:23",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				},
																				"typeName": {
																					"id": 10790,
																					"name": "uint256",
																					"nodeType": "ElementaryTypeName",
																					"src": "17898:7:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 10793,
																		"initialValue": {
																			"id": 10792,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10775,
																			"src": "17918:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "17898:21:23"
																	},
																	{
																		"assignments": [
																			10796
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 10796,
																				"mutability": "mutable",
																				"name": "currentItem",
																				"nameLocation": "17951:11:23",
																				"nodeType": "VariableDeclaration",
																				"scope": 10811,
																				"src": "17937:25:23",
																				"stateVariable": false,
																				"storageLocation": "memory",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
																					"typeString": "struct TicketContract.Ticket"
																				},
																				"typeName": {
																					"id": 10795,
																					"nodeType": "UserDefinedTypeName",
																					"pathNode": {
																						"id": 10794,
																						"name": "Ticket",
																						"nameLocations": [
																							"17937:6:23"
																						],
																						"nodeType": "IdentifierPath",
																						"referencedDeclaration": 9608,
																						"src": "17937:6:23"
																					},
																					"referencedDeclaration": 9608,
																					"src": "17937:6:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																						"typeString": "struct TicketContract.Ticket"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 10800,
																		"initialValue": {
																			"baseExpression": {
																				"id": 10797,
																				"name": "tickets",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 9613,
																				"src": "17965:7:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
																					"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
																				}
																			},
																			"id": 10799,
																			"indexExpression": {
																				"id": 10798,
																				"name": "currentId",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10791,
																				"src": "17973:9:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "IndexAccess",
																			"src": "17965:18:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_Ticket_$9608_storage",
																				"typeString": "struct TicketContract.Ticket storage ref"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "17937:46:23"
																	},
																	{
																		"expression": {
																			"id": 10805,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"baseExpression": {
																					"id": 10801,
																					"name": "items",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10766,
																					"src": "18001:5:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr",
																						"typeString": "struct TicketContract.Ticket memory[] memory"
																					}
																				},
																				"id": 10803,
																				"indexExpression": {
																					"id": 10802,
																					"name": "currentIndex",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10735,
																					"src": "18007:12:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": true,
																				"nodeType": "IndexAccess",
																				"src": "18001:19:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
																					"typeString": "struct TicketContract.Ticket memory"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"id": 10804,
																				"name": "currentItem",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10796,
																				"src": "18023:11:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
																					"typeString": "struct TicketContract.Ticket memory"
																				}
																			},
																			"src": "18001:33:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_Ticket_$9608_memory_ptr",
																				"typeString": "struct TicketContract.Ticket memory"
																			}
																		},
																		"id": 10806,
																		"nodeType": "ExpressionStatement",
																		"src": "18001:33:23"
																	},
																	{
																		"expression": {
																			"id": 10809,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"id": 10807,
																				"name": "currentIndex",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 10735,
																				"src": "18052:12:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "+=",
																			"rightHandSide": {
																				"hexValue": "31",
																				"id": 10808,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "18068:1:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_1_by_1",
																					"typeString": "int_const 1"
																				},
																				"value": "1"
																			},
																			"src": "18052:17:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 10810,
																		"nodeType": "ExpressionStatement",
																		"src": "18052:17:23"
																	}
																]
															}
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 10780,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 10778,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10775,
														"src": "17811:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"id": 10779,
														"name": "totalItemCount",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10727,
														"src": "17815:14:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "17811:18:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10814,
												"initializationExpression": {
													"assignments": [
														10775
													],
													"declarations": [
														{
															"constant": false,
															"id": 10775,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "17804:1:23",
															"nodeType": "VariableDeclaration",
															"scope": 10814,
															"src": "17796:9:23",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 10774,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "17796:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 10777,
													"initialValue": {
														"hexValue": "30",
														"id": 10776,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "17808:1:23",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "17796:13:23"
												},
												"loopExpression": {
													"expression": {
														"id": 10782,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "17831:3:23",
														"subExpression": {
															"id": 10781,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10775,
															"src": "17831:1:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 10783,
													"nodeType": "ExpressionStatement",
													"src": "17831:3:23"
												},
												"nodeType": "ForStatement",
												"src": "17791:303:23"
											},
											{
												"expression": {
													"id": 10815,
													"name": "items",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 10766,
													"src": "18110:5:23",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr",
														"typeString": "struct TicketContract.Ticket memory[] memory"
													}
												},
												"functionReturnParameters": 10725,
												"id": 10816,
												"nodeType": "Return",
												"src": "18103:12:23"
											}
										]
									},
									"functionSelector": "9af1179e",
									"id": 10818,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "fetchTicketsForOwner",
									"nameLocation": "17347:20:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10720,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10719,
												"mutability": "mutable",
												"name": "_fan",
												"nameLocation": "17376:4:23",
												"nodeType": "VariableDeclaration",
												"scope": 10818,
												"src": "17368:12:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10718,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "17368:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17367:14:23"
									},
									"returnParameters": {
										"id": 10725,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10724,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10818,
												"src": "17427:15:23",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_memory_ptr_$dyn_memory_ptr",
													"typeString": "struct TicketContract.Ticket[]"
												},
												"typeName": {
													"baseType": {
														"id": 10722,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 10721,
															"name": "Ticket",
															"nameLocations": [
																"17427:6:23"
															],
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 9608,
															"src": "17427:6:23"
														},
														"referencedDeclaration": 9608,
														"src": "17427:6:23",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
															"typeString": "struct TicketContract.Ticket"
														}
													},
													"id": 10723,
													"nodeType": "ArrayTypeName",
													"src": "17427:8:23",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_Ticket_$9608_storage_$dyn_storage_ptr",
														"typeString": "struct TicketContract.Ticket[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17426:17:23"
									},
									"scope": 11013,
									"src": "17338:784:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"baseFunctions": [
										1450
									],
									"body": {
										"id": 10887,
										"nodeType": "Block",
										"src": "18253:632:23",
										"statements": [
											{
												"assignments": [
													10830
												],
												"declarations": [
													{
														"constant": false,
														"id": 10830,
														"mutability": "mutable",
														"name": "theTicket",
														"nameLocation": "18280:9:23",
														"nodeType": "VariableDeclaration",
														"scope": 10887,
														"src": "18265:24:23",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
															"typeString": "struct TicketContract.Ticket"
														},
														"typeName": {
															"id": 10829,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10828,
																"name": "Ticket",
																"nameLocations": [
																	"18265:6:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 9608,
																"src": "18265:6:23"
															},
															"referencedDeclaration": 9608,
															"src": "18265:6:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																"typeString": "struct TicketContract.Ticket"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10834,
												"initialValue": {
													"baseExpression": {
														"id": 10831,
														"name": "tickets",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9613,
														"src": "18292:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Ticket_$9608_storage_$",
															"typeString": "mapping(uint256 => struct TicketContract.Ticket storage ref)"
														}
													},
													"id": 10833,
													"indexExpression": {
														"id": 10832,
														"name": "tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10824,
														"src": "18300:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "18292:16:23",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Ticket_$9608_storage",
														"typeString": "struct TicketContract.Ticket storage ref"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "18265:43:23"
											},
											{
												"assignments": [
													10836
												],
												"declarations": [
													{
														"constant": false,
														"id": 10836,
														"mutability": "mutable",
														"name": "_ticketTypeId",
														"nameLocation": "18370:13:23",
														"nodeType": "VariableDeclaration",
														"scope": 10887,
														"src": "18362:21:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10835,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "18362:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10840,
												"initialValue": {
													"baseExpression": {
														"id": 10837,
														"name": "ticketTypesForTicket",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9621,
														"src": "18386:20:23",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
															"typeString": "mapping(uint256 => uint256)"
														}
													},
													"id": 10839,
													"indexExpression": {
														"id": 10838,
														"name": "tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10824,
														"src": "18407:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "18386:29:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "18362:53:23"
											},
											{
												"assignments": [
													10845
												],
												"declarations": [
													{
														"constant": false,
														"id": 10845,
														"mutability": "mutable",
														"name": "theTicketType",
														"nameLocation": "18491:13:23",
														"nodeType": "VariableDeclaration",
														"scope": 10887,
														"src": "18458:46:23",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
															"typeString": "struct TixSellLibrary.TicketType"
														},
														"typeName": {
															"id": 10844,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 10843,
																"name": "TixSellLibrary.TicketType",
																"nameLocations": [
																	"18458:14:23",
																	"18473:10:23"
																],
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 11116,
																"src": "18458:25:23"
															},
															"referencedDeclaration": 11116,
															"src": "18458:25:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
																"typeString": "struct TixSellLibrary.TicketType"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10854,
												"initialValue": {
													"arguments": [
														{
															"id": 10852,
															"name": "_ticketTypeId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10836,
															"src": "18585:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"expression": {
																			"id": 10847,
																			"name": "eventContract",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9575,
																			"src": "18528:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IEventContract_$11705",
																				"typeString": "contract IEventContract"
																			}
																		},
																		"id": 10848,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "18542:21:23",
																		"memberName": "getTicketTypeContract",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11676,
																		"src": "18528:35:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
																			"typeString": "function () view external returns (address)"
																		}
																	},
																	"id": 10849,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "18528:37:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 10846,
																"name": "ITicketTypeContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11774,
																"src": "18508:19:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_ITicketTypeContract_$11774_$",
																	"typeString": "type(contract ITicketTypeContract)"
																}
															},
															"id": 10850,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18508:58:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_ITicketTypeContract_$11774",
																"typeString": "contract ITicketTypeContract"
															}
														},
														"id": 10851,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "18567:17:23",
														"memberName": "getTicketTypeInfo",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 11766,
														"src": "18508:76:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_TicketType_$11116_memory_ptr_$",
															"typeString": "function (uint256) view external returns (struct TixSellLibrary.TicketType memory)"
														}
													},
													"id": 10853,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18508:91:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
														"typeString": "struct TixSellLibrary.TicketType memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "18458:141:23"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 10861,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [
															{
																"id": 10856,
																"name": "ADMIN_ROLE",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 9552,
																"src": "18621:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																}
															},
															{
																"expression": {
																	"id": 10857,
																	"name": "msg",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967281,
																	"src": "18633:3:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_message",
																		"typeString": "msg"
																	}
																},
																"id": 10858,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "18637:6:23",
																"memberName": "sender",
																"nodeType": "MemberAccess",
																"src": "18633:10:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes32",
																	"typeString": "bytes32"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 10855,
															"name": "hasRole",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 126,
															"src": "18613:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
																"typeString": "function (bytes32,address) view returns (bool)"
															}
														},
														"id": 10859,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "18613:31:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "66616c7365",
														"id": 10860,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "bool",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "18646:5:23",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"value": "false"
													},
													"src": "18613:38:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 10869,
												"nodeType": "IfStatement",
												"src": "18609:113:23",
												"trueBody": {
													"id": 10868,
													"nodeType": "Block",
													"src": "18652:70:23",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"expression": {
																			"id": 10863,
																			"name": "theTicketType",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10845,
																			"src": "18673:13:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
																				"typeString": "struct TixSellLibrary.TicketType memory"
																			}
																		},
																		"id": 10864,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "18687:8:23",
																		"memberName": "sellable",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 11088,
																		"src": "18673:22:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "6e6f742073656c6c61626c65",
																		"id": 10865,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "18696:14:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_086c971ec8586be7d18cef394de7694f0736e6c54f6583ec1da1d62bac8faf91",
																			"typeString": "literal_string \"not sellable\""
																		},
																		"value": "not sellable"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_086c971ec8586be7d18cef394de7694f0736e6c54f6583ec1da1d62bac8faf91",
																			"typeString": "literal_string \"not sellable\""
																		}
																	],
																	"id": 10862,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "18665:7:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 10866,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "18665:46:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 10867,
															"nodeType": "ExpressionStatement",
															"src": "18665:46:23"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10873,
															"name": "from",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10820,
															"src": "18812:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 10874,
															"name": "to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10822,
															"src": "18818:2:23",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 10875,
															"name": "tokenId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10824,
															"src": "18822:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 10870,
															"name": "super",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967271,
															"src": "18793:5:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_super$_TicketContract_$11013_$",
																"typeString": "type(contract super TicketContract)"
															}
														},
														"id": 10872,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "18799:12:23",
														"memberName": "transferFrom",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1450,
														"src": "18793:18:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,address,uint256)"
														}
													},
													"id": 10876,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18793:37:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10877,
												"nodeType": "ExpressionStatement",
												"src": "18793:37:23"
											},
											{
												"expression": {
													"id": 10885,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 10878,
															"name": "theTicket",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10830,
															"src": "18840:9:23",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Ticket_$9608_storage_ptr",
																"typeString": "struct TicketContract.Ticket storage pointer"
															}
														},
														"id": 10880,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberLocation": "18850:5:23",
														"memberName": "owner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 9597,
														"src": "18840:15:23",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 10883,
																"name": "to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10822,
																"src": "18866:2:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 10882,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "18858:8:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_payable_$",
																"typeString": "type(address payable)"
															},
															"typeName": {
																"id": 10881,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "18858:8:23",
																"stateMutability": "payable",
																"typeDescriptions": {}
															}
														},
														"id": 10884,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "18858:11:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address_payable",
															"typeString": "address payable"
														}
													},
													"src": "18840:29:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 10886,
												"nodeType": "ExpressionStatement",
												"src": "18840:29:23"
											}
										]
									},
									"functionSelector": "23b872dd",
									"id": 10888,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "transferFrom",
									"nameLocation": "18143:12:23",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 10826,
										"nodeType": "OverrideSpecifier",
										"overrides": [],
										"src": "18244:8:23"
									},
									"parameters": {
										"id": 10825,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10820,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "18173:4:23",
												"nodeType": "VariableDeclaration",
												"scope": 10888,
												"src": "18165:12:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10819,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "18165:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10822,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "18195:2:23",
												"nodeType": "VariableDeclaration",
												"scope": 10888,
												"src": "18187:10:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10821,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "18187:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10824,
												"mutability": "mutable",
												"name": "tokenId",
												"nameLocation": "18215:7:23",
												"nodeType": "VariableDeclaration",
												"scope": 10888,
												"src": "18207:15:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10823,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "18207:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18155:73:23"
									},
									"returnParameters": {
										"id": 10827,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18253:0:23"
									},
									"scope": 11013,
									"src": "18134:751:23",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 10925,
										"nodeType": "Block",
										"src": "19285:287:23",
										"statements": [
											{
												"assignments": [
													10894
												],
												"declarations": [
													{
														"constant": false,
														"id": 10894,
														"mutability": "mutable",
														"name": "balance",
														"nameLocation": "19303:7:23",
														"nodeType": "VariableDeclaration",
														"scope": 10925,
														"src": "19295:15:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 10893,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "19295:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 10900,
												"initialValue": {
													"expression": {
														"arguments": [
															{
																"id": 10897,
																"name": "this",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967268,
																"src": "19321:4:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_TicketContract_$11013",
																	"typeString": "contract TicketContract"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_contract$_TicketContract_$11013",
																	"typeString": "contract TicketContract"
																}
															],
															"id": 10896,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "19313:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 10895,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "19313:7:23",
																"typeDescriptions": {}
															}
														},
														"id": 10898,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "19313:13:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 10899,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"memberLocation": "19327:7:23",
													"memberName": "balance",
													"nodeType": "MemberAccess",
													"src": "19313:21:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "19295:39:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 10904,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 10902,
																"name": "balance",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10894,
																"src": "19352:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 10903,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "19362:1:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "19352:11:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4e6f206574686572206c65667420746f207769746864726177",
															"id": 10905,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "19365:27:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_8e214158120ebd8c8a9dbfabb2b09bc322daaaa67b6aff20f1d19ed640c12c58",
																"typeString": "literal_string \"No ether left to withdraw\""
															},
															"value": "No ether left to withdraw"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_8e214158120ebd8c8a9dbfabb2b09bc322daaaa67b6aff20f1d19ed640c12c58",
																"typeString": "literal_string \"No ether left to withdraw\""
															}
														],
														"id": 10901,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "19344:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 10906,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19344:49:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10907,
												"nodeType": "ExpressionStatement",
												"src": "19344:49:23"
											},
											{
												"assignments": [
													10909,
													null
												],
												"declarations": [
													{
														"constant": false,
														"id": 10909,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "19450:7:23",
														"nodeType": "VariableDeclaration",
														"scope": 10925,
														"src": "19445:12:23",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 10908,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "19445:4:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													null
												],
												"id": 10919,
												"initialValue": {
													"arguments": [
														{
															"hexValue": "",
															"id": 10917,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "19516:2:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															},
															"value": ""
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																"typeString": "literal_string \"\""
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
																	"typeString": "literal_string \"\""
																}
															],
															"expression": {
																"arguments": [
																	{
																		"id": 10912,
																		"name": "resellPaiementSplitter",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 9564,
																		"src": "19471:22:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address_payable",
																			"typeString": "address payable"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address_payable",
																			"typeString": "address payable"
																		}
																	],
																	"id": 10911,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "19463:8:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_payable_$",
																		"typeString": "type(address payable)"
																	},
																	"typeName": {
																		"id": 10910,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "19463:8:23",
																		"stateMutability": "payable",
																		"typeDescriptions": {}
																	}
																},
																"id": 10913,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "19463:31:23",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address_payable",
																	"typeString": "address payable"
																}
															},
															"id": 10914,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "19495:4:23",
															"memberName": "call",
															"nodeType": "MemberAccess",
															"src": "19463:36:23",
															"typeDescriptions": {
																"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
																"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
															}
														},
														"id": 10916,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"id": 10915,
																"name": "balance",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10894,
																"src": "19507:7:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "19463:52:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
															"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
														}
													},
													"id": 10918,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19463:56:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "19444:75:23"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 10921,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10909,
															"src": "19537:7:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5472616e73666572206661696c65642e",
															"id": 10922,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "19546:18:23",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_c81948f77ae7b56f1759fc612b6b373d090eebe7124f74c528fff8e0a139fe69",
																"typeString": "literal_string \"Transfer failed.\""
															},
															"value": "Transfer failed."
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_c81948f77ae7b56f1759fc612b6b373d090eebe7124f74c528fff8e0a139fe69",
																"typeString": "literal_string \"Transfer failed.\""
															}
														],
														"id": 10920,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "19529:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 10923,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19529:36:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10924,
												"nodeType": "ExpressionStatement",
												"src": "19529:36:23"
											}
										]
									},
									"functionSelector": "3ccfd60b",
									"id": 10926,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 10891,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 10890,
												"name": "onlyOwner",
												"nameLocations": [
													"19275:9:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 483,
												"src": "19275:9:23"
											},
											"nodeType": "ModifierInvocation",
											"src": "19275:9:23"
										}
									],
									"name": "withdraw",
									"nameLocation": "19255:8:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10889,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19263:2:23"
									},
									"returnParameters": {
										"id": 10892,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19285:0:23"
									},
									"scope": 11013,
									"src": "19246:326:23",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"baseFunctions": [
										108,
										1234,
										2382
									],
									"body": {
										"id": 10946,
										"nodeType": "Block",
										"src": "20513:99:23",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 10944,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														},
														"id": 10939,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 10937,
															"name": "interfaceId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 10928,
															"src": "20530:11:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"id": 10938,
															"name": "_INTERFACE_ID_ERC2981",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9560,
															"src": "20545:21:23",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"src": "20530:36:23",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"arguments": [
															{
																"id": 10942,
																"name": "interfaceId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 10928,
																"src": "20594:11:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															],
															"expression": {
																"id": 10940,
																"name": "super",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967271,
																"src": "20570:5:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_super$_TicketContract_$11013_$",
																	"typeString": "type(contract super TicketContract)"
																}
															},
															"id": 10941,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "20576:17:23",
															"memberName": "supportsInterface",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 108,
															"src": "20570:23:23",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
																"typeString": "function (bytes4) view returns (bool)"
															}
														},
														"id": 10943,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "20570:36:23",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "20530:76:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 10936,
												"id": 10945,
												"nodeType": "Return",
												"src": "20523:83:23"
											}
										]
									},
									"functionSelector": "01ffc9a7",
									"id": 10947,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "supportsInterface",
									"nameLocation": "20410:17:23",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 10933,
										"nodeType": "OverrideSpecifier",
										"overrides": [
											{
												"id": 10930,
												"name": "ERC2981",
												"nameLocations": [
													"20469:7:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 2559,
												"src": "20469:7:23"
											},
											{
												"id": 10931,
												"name": "ERC721",
												"nameLocations": [
													"20477:6:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 2142,
												"src": "20477:6:23"
											},
											{
												"id": 10932,
												"name": "AccessControl",
												"nameLocations": [
													"20484:13:23"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 341,
												"src": "20484:13:23"
											}
										],
										"src": "20460:38:23"
									},
									"parameters": {
										"id": 10929,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10928,
												"mutability": "mutable",
												"name": "interfaceId",
												"nameLocation": "20435:11:23",
												"nodeType": "VariableDeclaration",
												"scope": 10947,
												"src": "20428:18:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 10927,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "20428:6:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20427:20:23"
									},
									"returnParameters": {
										"id": 10936,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10935,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10947,
												"src": "20508:4:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10934,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "20508:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20507:6:23"
									},
									"scope": 11013,
									"src": "20401:211:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 10957,
										"nodeType": "Block",
										"src": "20681:46:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 10954,
															"name": "eventContract",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9575,
															"src": "20706:13:23",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IEventContract_$11705",
																"typeString": "contract IEventContract"
															}
														],
														"id": 10953,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "ElementaryTypeNameExpression",
														"src": "20698:7:23",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_address_$",
															"typeString": "type(address)"
														},
														"typeName": {
															"id": 10952,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "20698:7:23",
															"typeDescriptions": {}
														}
													},
													"id": 10955,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20698:22:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 10951,
												"id": 10956,
												"nodeType": "Return",
												"src": "20691:29:23"
											}
										]
									},
									"functionSelector": "715e76aa",
									"id": 10958,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getEventContract",
									"nameLocation": "20631:16:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10948,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20647:2:23"
									},
									"returnParameters": {
										"id": 10951,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10950,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10958,
												"src": "20673:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10949,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "20673:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20672:9:23"
									},
									"scope": 11013,
									"src": "20622:105:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10969,
										"nodeType": "Block",
										"src": "20816:54:23",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 10965,
														"name": "ticketTypesForTicket",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9621,
														"src": "20833:20:23",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
															"typeString": "mapping(uint256 => uint256)"
														}
													},
													"id": 10967,
													"indexExpression": {
														"id": 10966,
														"name": "_tokenId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 10960,
														"src": "20854:8:23",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "20833:30:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 10964,
												"id": 10968,
												"nodeType": "Return",
												"src": "20826:37:23"
											}
										]
									},
									"functionSelector": "24cda745",
									"id": 10970,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getTicketTypesForTicket",
									"nameLocation": "20743:23:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10961,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10960,
												"mutability": "mutable",
												"name": "_tokenId",
												"nameLocation": "20775:8:23",
												"nodeType": "VariableDeclaration",
												"scope": 10970,
												"src": "20767:16:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10959,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "20767:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20766:18:23"
									},
									"returnParameters": {
										"id": 10964,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10963,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10970,
												"src": "20808:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10962,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "20808:7:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20807:9:23"
									},
									"scope": 11013,
									"src": "20734:136:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 10977,
										"nodeType": "Block",
										"src": "20947:46:23",
										"statements": [
											{
												"expression": {
													"id": 10975,
													"name": "resellPaiementSplitter",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 9564,
													"src": "20964:22:23",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"functionReturnParameters": 10974,
												"id": 10976,
												"nodeType": "Return",
												"src": "20957:29:23"
											}
										]
									},
									"functionSelector": "796c8481",
									"id": 10978,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getResellPaymentSplitter",
									"nameLocation": "20889:24:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10971,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20913:2:23"
									},
									"returnParameters": {
										"id": 10974,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10973,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 10978,
												"src": "20939:7:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10972,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "20939:7:23",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20938:9:23"
									},
									"scope": 11013,
									"src": "20880:113:23",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 11011,
										"nodeType": "Block",
										"src": "21076:301:23",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"arguments": [
																		{
																			"arguments": [
																				{
																					"id": 10997,
																					"name": "x",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10980,
																					"src": "21232:1:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"expression": {
																					"id": 10995,
																					"name": "ABDKMathQuad",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 9524,
																					"src": "21209:12:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																						"typeString": "type(library ABDKMathQuad)"
																					}
																				},
																				"id": 10996,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "21222:8:23",
																				"memberName": "fromUInt",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 4605,
																				"src": "21209:21:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes16_$",
																					"typeString": "function (uint256) pure returns (bytes16)"
																				}
																			},
																			"id": 10998,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "21209:25:23",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		},
																		{
																			"arguments": [
																				{
																					"id": 11001,
																					"name": "y",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 10982,
																					"src": "21275:1:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				],
																				"expression": {
																					"id": 10999,
																					"name": "ABDKMathQuad",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 9524,
																					"src": "21252:12:23",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																						"typeString": "type(library ABDKMathQuad)"
																					}
																				},
																				"id": 11000,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberLocation": "21265:8:23",
																				"memberName": "fromUInt",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 4605,
																				"src": "21252:21:23",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes16_$",
																					"typeString": "function (uint256) pure returns (bytes16)"
																				}
																			},
																			"id": 11002,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"nameLocations": [],
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "21252:25:23",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			},
																			{
																				"typeIdentifier": "t_bytes16",
																				"typeString": "bytes16"
																			}
																		],
																		"expression": {
																			"id": 10993,
																			"name": "ABDKMathQuad",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9524,
																			"src": "21174:12:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																				"typeString": "type(library ABDKMathQuad)"
																			}
																		},
																		"id": 10994,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "21187:3:23",
																		"memberName": "mul",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 6536,
																		"src": "21174:16:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_bytes16_$_t_bytes16_$returns$_t_bytes16_$",
																			"typeString": "function (bytes16,bytes16) pure returns (bytes16)"
																		}
																	},
																	"id": 11003,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "21174:121:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																},
																{
																	"arguments": [
																		{
																			"id": 11006,
																			"name": "z",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 10984,
																			"src": "21336:1:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"expression": {
																			"id": 11004,
																			"name": "ABDKMathQuad",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 9524,
																			"src": "21313:12:23",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																				"typeString": "type(library ABDKMathQuad)"
																			}
																		},
																		"id": 11005,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberLocation": "21326:8:23",
																		"memberName": "fromUInt",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 4605,
																		"src": "21313:21:23",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes16_$",
																			"typeString": "function (uint256) pure returns (bytes16)"
																		}
																	},
																	"id": 11007,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"nameLocations": [],
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "21313:25:23",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	},
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																],
																"expression": {
																	"id": 10991,
																	"name": "ABDKMathQuad",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9524,
																	"src": "21139:12:23",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																		"typeString": "type(library ABDKMathQuad)"
																	}
																},
																"id": 10992,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "21152:3:23",
																"memberName": "div",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 6877,
																"src": "21139:16:23",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$_t_bytes16_$_t_bytes16_$returns$_t_bytes16_$",
																	"typeString": "function (bytes16,bytes16) pure returns (bytes16)"
																}
															},
															"id": 11008,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21139:213:23",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes16",
																"typeString": "bytes16"
															}
														],
														"expression": {
															"id": 10989,
															"name": "ABDKMathQuad",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 9524,
															"src": "21105:12:23",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_ABDKMathQuad_$9524_$",
																"typeString": "type(library ABDKMathQuad)"
															}
														},
														"id": 10990,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "21118:6:23",
														"memberName": "toUInt",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 4683,
														"src": "21105:19:23",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$_t_bytes16_$returns$_t_uint256_$",
															"typeString": "function (bytes16) pure returns (uint256)"
														}
													},
													"id": 11009,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21105:261:23",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 10988,
												"id": 11010,
												"nodeType": "Return",
												"src": "21086:280:23"
											}
										]
									},
									"functionSelector": "aa9a0912",
									"id": 11012,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "mulDiv",
									"nameLocation": "21009:6:23",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10985,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10980,
												"mutability": "mutable",
												"name": "x",
												"nameLocation": "21022:1:23",
												"nodeType": "VariableDeclaration",
												"scope": 11012,
												"src": "21017:6:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10979,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21017:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10982,
												"mutability": "mutable",
												"name": "y",
												"nameLocation": "21030:1:23",
												"nodeType": "VariableDeclaration",
												"scope": 11012,
												"src": "21025:6:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10981,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21025:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10984,
												"mutability": "mutable",
												"name": "z",
												"nameLocation": "21038:1:23",
												"nodeType": "VariableDeclaration",
												"scope": 11012,
												"src": "21033:6:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10983,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21033:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21016:24:23"
									},
									"returnParameters": {
										"id": 10988,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10987,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11012,
												"src": "21070:4:23",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10986,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21070:4:23",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21069:6:23"
									},
									"scope": 11013,
									"src": "21000:377:23",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "public"
								}
							],
							"scope": 11014,
							"src": "880:20499:23",
							"usedErrors": [
								351,
								354,
								438,
								443,
								640,
								645,
								654,
								659,
								664,
								671,
								676,
								681,
								2337,
								2342,
								2351,
								2358
							],
							"usedEvents": [
								363,
								372,
								381,
								449,
								2158,
								2167,
								2176,
								9635
							]
						}
					],
					"src": "39:21341:23"
				},
				"id": 23
			},
			"contracts/TixSellEventLibrary.sol": {
				"ast": {
					"absolutePath": "contracts/TixSellEventLibrary.sol",
					"exportedSymbols": {
						"TixSellEventLibrary": [
							11037
						]
					},
					"id": 11038,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11015,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:24"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "TixSellEventLibrary",
							"contractDependencies": [],
							"contractKind": "library",
							"fullyImplemented": true,
							"id": 11037,
							"linearizedBaseContracts": [
								11037
							],
							"name": "TixSellEventLibrary",
							"nameLocation": "72:19:24",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "TixSellEventLibrary.EventType",
									"id": 11018,
									"members": [
										{
											"id": 11016,
											"name": "ONLINE",
											"nameLocation": "114:6:24",
											"nodeType": "EnumValue",
											"src": "114:6:24"
										},
										{
											"id": 11017,
											"name": "VENUE",
											"nameLocation": "122:5:24",
											"nodeType": "EnumValue",
											"src": "122:5:24"
										}
									],
									"name": "EventType",
									"nameLocation": "103:9:24",
									"nodeType": "EnumDefinition",
									"src": "98:31:24"
								},
								{
									"canonicalName": "TixSellEventLibrary.Event",
									"id": 11036,
									"members": [
										{
											"constant": false,
											"id": 11020,
											"mutability": "mutable",
											"name": "id",
											"nameLocation": "173:2:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "166:9:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11019,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "166:6:24",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11022,
											"mutability": "mutable",
											"name": "eventDate",
											"nameLocation": "193:9:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "185:17:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11021,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "185:7:24",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11024,
											"mutability": "mutable",
											"name": "duration",
											"nameLocation": "220:8:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "212:16:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11023,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "212:7:24",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11027,
											"mutability": "mutable",
											"name": "typeEvent",
											"nameLocation": "248:9:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "238:19:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_enum$_EventType_$11018",
												"typeString": "enum TixSellEventLibrary.EventType"
											},
											"typeName": {
												"id": 11026,
												"nodeType": "UserDefinedTypeName",
												"pathNode": {
													"id": 11025,
													"name": "EventType",
													"nameLocations": [
														"238:9:24"
													],
													"nodeType": "IdentifierPath",
													"referencedDeclaration": 11018,
													"src": "238:9:24"
												},
												"referencedDeclaration": 11018,
												"src": "238:9:24",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_EventType_$11018",
													"typeString": "enum TixSellEventLibrary.EventType"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11029,
											"mutability": "mutable",
											"name": "name",
											"nameLocation": "274:4:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "267:11:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11028,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "267:6:24",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11031,
											"mutability": "mutable",
											"name": "description",
											"nameLocation": "295:11:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "288:18:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11030,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "288:6:24",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11033,
											"mutability": "mutable",
											"name": "canceled",
											"nameLocation": "328:8:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "323:13:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11032,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "323:4:24",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11035,
											"mutability": "mutable",
											"name": "royalty",
											"nameLocation": "353:7:24",
											"nodeType": "VariableDeclaration",
											"scope": 11036,
											"src": "346:14:24",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint96",
												"typeString": "uint96"
											},
											"typeName": {
												"id": 11034,
												"name": "uint96",
												"nodeType": "ElementaryTypeName",
												"src": "346:6:24",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "Event",
									"nameLocation": "150:5:24",
									"nodeType": "StructDefinition",
									"scope": 11037,
									"src": "143:270:24",
									"visibility": "public"
								}
							],
							"scope": 11038,
							"src": "64:355:24",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:380:24"
				},
				"id": 24
			},
			"contracts/TixSellLibraries.sol": {
				"ast": {
					"absolutePath": "contracts/TixSellLibraries.sol",
					"exportedSymbols": {
						"TixSellLibrary": [
							11135
						]
					},
					"id": 11136,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11039,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:25"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "TixSellLibrary",
							"contractDependencies": [],
							"contractKind": "library",
							"fullyImplemented": true,
							"id": 11135,
							"linearizedBaseContracts": [
								11135
							],
							"name": "TixSellLibrary",
							"nameLocation": "72:14:25",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "TixSellLibrary.TicketDesignInfo",
									"id": 11070,
									"members": [
										{
											"constant": false,
											"id": 11041,
											"mutability": "mutable",
											"name": "gradient1Color",
											"nameLocation": "141:14:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "134:21:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11040,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "134:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11043,
											"mutability": "mutable",
											"name": "gradient2Color",
											"nameLocation": "172:14:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "165:21:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11042,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "165:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11045,
											"mutability": "mutable",
											"name": "eventTitleOne",
											"nameLocation": "203:13:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "196:20:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11044,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "196:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11047,
											"mutability": "mutable",
											"name": "eventTitleTwo",
											"nameLocation": "233:13:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "226:20:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11046,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "226:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11049,
											"mutability": "mutable",
											"name": "eventTitleFont",
											"nameLocation": "263:14:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "256:21:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11048,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "256:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11051,
											"mutability": "mutable",
											"name": "eventColor",
											"nameLocation": "294:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "287:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11050,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "287:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11053,
											"mutability": "mutable",
											"name": "ticketTypeFont",
											"nameLocation": "321:14:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "314:21:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11052,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "314:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11055,
											"mutability": "mutable",
											"name": "ticketTypeColor",
											"nameLocation": "352:15:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "345:22:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11054,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "345:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11057,
											"mutability": "mutable",
											"name": "price",
											"nameLocation": "384:5:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "377:12:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11056,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "377:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11059,
											"mutability": "mutable",
											"name": "priceColor",
											"nameLocation": "406:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "399:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11058,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "399:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11061,
											"mutability": "mutable",
											"name": "priceFont",
											"nameLocation": "434:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "427:16:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11060,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "427:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11063,
											"mutability": "mutable",
											"name": "fontUrl",
											"nameLocation": "460:7:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "453:14:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11062,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "453:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11065,
											"mutability": "mutable",
											"name": "ticketType",
											"nameLocation": "484:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "477:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11064,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "477:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11067,
											"mutability": "mutable",
											"name": "venue",
											"nameLocation": "511:5:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "504:12:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11066,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "504:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11069,
											"mutability": "mutable",
											"name": "svgUrl",
											"nameLocation": "533:6:25",
											"nodeType": "VariableDeclaration",
											"scope": 11070,
											"src": "526:13:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11068,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "526:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "TicketDesignInfo",
									"nameLocation": "107:16:25",
									"nodeType": "StructDefinition",
									"scope": 11135,
									"src": "100:447:25",
									"visibility": "public"
								},
								{
									"canonicalName": "TixSellLibrary.TicketType",
									"id": 11116,
									"members": [
										{
											"constant": false,
											"id": 11072,
											"mutability": "mutable",
											"name": "id",
											"nameLocation": "590:2:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "582:10:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11071,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "582:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11074,
											"mutability": "mutable",
											"name": "maxTickets",
											"nameLocation": "609:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "602:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint32",
												"typeString": "uint32"
											},
											"typeName": {
												"id": 11073,
												"name": "uint32",
												"nodeType": "ElementaryTypeName",
												"src": "602:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint32",
													"typeString": "uint32"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11076,
											"mutability": "mutable",
											"name": "maxTicketsPerUser",
											"nameLocation": "636:17:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "629:24:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint32",
												"typeString": "uint32"
											},
											"typeName": {
												"id": 11075,
												"name": "uint32",
												"nodeType": "ElementaryTypeName",
												"src": "629:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint32",
													"typeString": "uint32"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11078,
											"mutability": "mutable",
											"name": "ticketPrice",
											"nameLocation": "671:11:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "663:19:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11077,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "663:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11080,
											"mutability": "mutable",
											"name": "bookingStartDate",
											"nameLocation": "753:16:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "745:24:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11079,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "745:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11082,
											"mutability": "mutable",
											"name": "bookingEndDate",
											"nameLocation": "787:14:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "779:22:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11081,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "779:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11084,
											"mutability": "mutable",
											"name": "revealed",
											"nameLocation": "816:8:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "811:13:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11083,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "811:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11086,
											"mutability": "mutable",
											"name": "revealStartDate",
											"nameLocation": "842:15:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "834:23:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11085,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "834:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11088,
											"mutability": "mutable",
											"name": "sellable",
											"nameLocation": "872:8:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "867:13:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11087,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "867:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11090,
											"mutability": "mutable",
											"name": "maxSellablePrice",
											"nameLocation": "898:16:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "890:24:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11089,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "890:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11092,
											"mutability": "mutable",
											"name": "royaltySellable",
											"nameLocation": "932:15:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "924:23:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11091,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "924:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11094,
											"mutability": "mutable",
											"name": "earlyBid",
											"nameLocation": "962:8:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "957:13:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11093,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "957:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11096,
											"mutability": "mutable",
											"name": "discountPrice",
											"nameLocation": "988:13:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "980:21:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11095,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "980:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11098,
											"mutability": "mutable",
											"name": "discountEndDate",
											"nameLocation": "1019:15:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1011:23:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11097,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1011:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11100,
											"mutability": "mutable",
											"name": "templateId",
											"nameLocation": "1052:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1044:18:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11099,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1044:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11102,
											"mutability": "mutable",
											"name": "fixAmount",
											"nameLocation": "1080:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1072:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11101,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1072:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11104,
											"mutability": "mutable",
											"name": "freeDrink",
											"nameLocation": "1143:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1138:14:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11103,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1138:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11106,
											"mutability": "mutable",
											"name": "priorityQueue",
											"nameLocation": "1167:13:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1162:18:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11105,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1162:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11108,
											"mutability": "mutable",
											"name": "name",
											"nameLocation": "1197:4:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1190:11:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11107,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "1190:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11110,
											"mutability": "mutable",
											"name": "hiddenuri",
											"nameLocation": "1218:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1211:16:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11109,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "1211:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11112,
											"mutability": "mutable",
											"name": "image",
											"nameLocation": "1246:5:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1239:12:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11111,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "1239:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11115,
											"mutability": "mutable",
											"name": "ticketDesignInfo",
											"nameLocation": "1278:16:25",
											"nodeType": "VariableDeclaration",
											"scope": 11116,
											"src": "1261:33:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_storage_ptr",
												"typeString": "struct TixSellLibrary.TicketDesignInfo"
											},
											"typeName": {
												"id": 11114,
												"nodeType": "UserDefinedTypeName",
												"pathNode": {
													"id": 11113,
													"name": "TicketDesignInfo",
													"nameLocations": [
														"1261:16:25"
													],
													"nodeType": "IdentifierPath",
													"referencedDeclaration": 11070,
													"src": "1261:16:25"
												},
												"referencedDeclaration": 11070,
												"src": "1261:16:25",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_storage_ptr",
													"typeString": "struct TixSellLibrary.TicketDesignInfo"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "TicketType",
									"nameLocation": "561:10:25",
									"nodeType": "StructDefinition",
									"scope": 11135,
									"src": "554:747:25",
									"visibility": "public"
								},
								{
									"canonicalName": "TixSellLibrary.NftTicketInfo",
									"id": 11134,
									"members": [
										{
											"constant": false,
											"id": 11118,
											"mutability": "mutable",
											"name": "templateId",
											"nameLocation": "1347:10:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1339:18:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11117,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1339:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11120,
											"mutability": "mutable",
											"name": "tokenId",
											"nameLocation": "1375:7:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1367:15:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11119,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1367:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11122,
											"mutability": "mutable",
											"name": "image",
											"nameLocation": "1399:5:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1392:12:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11121,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "1392:6:25",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11124,
											"mutability": "mutable",
											"name": "eventDate",
											"nameLocation": "1422:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1414:17:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11123,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "1414:7:25",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11127,
											"mutability": "mutable",
											"name": "ticketDesignInfo",
											"nameLocation": "1459:16:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1442:33:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_storage_ptr",
												"typeString": "struct TixSellLibrary.TicketDesignInfo"
											},
											"typeName": {
												"id": 11126,
												"nodeType": "UserDefinedTypeName",
												"pathNode": {
													"id": 11125,
													"name": "TicketDesignInfo",
													"nameLocations": [
														"1442:16:25"
													],
													"nodeType": "IdentifierPath",
													"referencedDeclaration": 11070,
													"src": "1442:16:25"
												},
												"referencedDeclaration": 11070,
												"src": "1442:16:25",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_TicketDesignInfo_$11070_storage_ptr",
													"typeString": "struct TixSellLibrary.TicketDesignInfo"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11129,
											"mutability": "mutable",
											"name": "freeDrink",
											"nameLocation": "1491:9:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1486:14:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11128,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1486:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11131,
											"mutability": "mutable",
											"name": "priorityQueue",
											"nameLocation": "1515:13:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1510:18:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11130,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1510:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11133,
											"mutability": "mutable",
											"name": "sellable",
											"nameLocation": "1546:8:25",
											"nodeType": "VariableDeclaration",
											"scope": 11134,
											"src": "1541:13:25",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11132,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "1541:4:25",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "NftTicketInfo",
									"nameLocation": "1315:13:25",
									"nodeType": "StructDefinition",
									"scope": 11135,
									"src": "1308:256:25",
									"visibility": "public"
								}
							],
							"scope": 11136,
							"src": "64:1502:25",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:1527:25"
				},
				"id": 25
			},
			"contracts/TixSellReservationLibrary.sol": {
				"ast": {
					"absolutePath": "contracts/TixSellReservationLibrary.sol",
					"exportedSymbols": {
						"TixSellReservationLibrary": [
							11155
						]
					},
					"id": 11156,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11137,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:26"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "TixSellReservationLibrary",
							"contractDependencies": [],
							"contractKind": "library",
							"fullyImplemented": true,
							"id": 11155,
							"linearizedBaseContracts": [
								11155
							],
							"name": "TixSellReservationLibrary",
							"nameLocation": "72:25:26",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "TixSellReservationLibrary.TicketReservation",
									"id": 11154,
									"members": [
										{
											"constant": false,
											"id": 11139,
											"mutability": "mutable",
											"name": "id",
											"nameLocation": "155:2:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "148:9:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_string_storage_ptr",
												"typeString": "string"
											},
											"typeName": {
												"id": 11138,
												"name": "string",
												"nodeType": "ElementaryTypeName",
												"src": "148:6:26",
												"typeDescriptions": {
													"typeIdentifier": "t_string_storage_ptr",
													"typeString": "string"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11141,
											"mutability": "mutable",
											"name": "owner",
											"nameLocation": "175:5:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "167:13:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 11140,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "167:7:26",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11143,
											"mutability": "mutable",
											"name": "reservationDate",
											"nameLocation": "198:15:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "190:23:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11142,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "190:7:26",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11145,
											"mutability": "mutable",
											"name": "expirationDate",
											"nameLocation": "231:14:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "223:22:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11144,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "223:7:26",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11147,
											"mutability": "mutable",
											"name": "amount",
											"nameLocation": "263:6:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "255:14:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11146,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "255:7:26",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11149,
											"mutability": "mutable",
											"name": "ticketTypeId",
											"nameLocation": "287:12:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "279:20:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 11148,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "279:7:26",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11151,
											"mutability": "mutable",
											"name": "used",
											"nameLocation": "314:4:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "309:9:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11150,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "309:4:26",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 11153,
											"mutability": "mutable",
											"name": "exists",
											"nameLocation": "333:6:26",
											"nodeType": "VariableDeclaration",
											"scope": 11154,
											"src": "328:11:26",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bool",
												"typeString": "bool"
											},
											"typeName": {
												"id": 11152,
												"name": "bool",
												"nodeType": "ElementaryTypeName",
												"src": "328:4:26",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "TicketReservation",
									"nameLocation": "120:17:26",
									"nodeType": "StructDefinition",
									"scope": 11155,
									"src": "113:234:26",
									"visibility": "public"
								}
							],
							"scope": 11156,
							"src": "64:287:26",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:312:26"
				},
				"id": 26
			},
			"contracts/TokenPaymentSplitter.sol": {
				"ast": {
					"absolutePath": "contracts/TokenPaymentSplitter.sol",
					"exportedSymbols": {
						"Address": [
							2812
						],
						"Context": [
							2881
						],
						"IERC20": [
							807
						],
						"IERC20Permit": [
							843
						],
						"PaymentSplitter": [
							11627
						],
						"SafeERC20": [
							1133
						],
						"TokenPaymentSplitter": [
							11644
						]
					},
					"id": 11645,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11157,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "32:24:27"
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
							"file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
							"id": 11158,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11645,
							"sourceUnit": 1134,
							"src": "58:65:27",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
							"file": "@openzeppelin/contracts/utils/Address.sol",
							"id": 11159,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11645,
							"sourceUnit": 2813,
							"src": "124:51:27",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Context.sol",
							"file": "@openzeppelin/contracts/utils/Context.sol",
							"id": 11160,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11645,
							"sourceUnit": 2882,
							"src": "176:51:27",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 11161,
										"name": "Context",
										"nameLocations": [
											"257:7:27"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 2881,
										"src": "257:7:27"
									},
									"id": 11162,
									"nodeType": "InheritanceSpecifier",
									"src": "257:7:27"
								}
							],
							"canonicalName": "PaymentSplitter",
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 11627,
							"linearizedBaseContracts": [
								11627,
								2881
							],
							"name": "PaymentSplitter",
							"nameLocation": "238:15:27",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"anonymous": false,
									"eventSelector": "40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac",
									"id": 11168,
									"name": "PayeeAdded",
									"nameLocation": "277:10:27",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 11167,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11164,
												"indexed": false,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "296:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11168,
												"src": "288:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11163,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "288:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11166,
												"indexed": false,
												"mutability": "mutable",
												"name": "shares",
												"nameLocation": "313:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11168,
												"src": "305:14:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11165,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "305:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "287:33:27"
									},
									"src": "271:50:27"
								},
								{
									"anonymous": false,
									"eventSelector": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056",
									"id": 11174,
									"name": "PaymentReleased",
									"nameLocation": "332:15:27",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 11173,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11170,
												"indexed": false,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "356:2:27",
												"nodeType": "VariableDeclaration",
												"scope": 11174,
												"src": "348:10:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11169,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "348:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11172,
												"indexed": false,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "368:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11174,
												"src": "360:14:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11171,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "360:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "347:28:27"
									},
									"src": "326:50:27"
								},
								{
									"anonymous": false,
									"eventSelector": "3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a",
									"id": 11183,
									"name": "ERC20PaymentReleased",
									"nameLocation": "387:20:27",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 11182,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11177,
												"indexed": true,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "423:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11183,
												"src": "408:20:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 11176,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11175,
														"name": "IERC20",
														"nameLocations": [
															"408:6:27"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "408:6:27"
													},
													"referencedDeclaration": 807,
													"src": "408:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11179,
												"indexed": false,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "438:2:27",
												"nodeType": "VariableDeclaration",
												"scope": 11183,
												"src": "430:10:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11178,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "430:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11181,
												"indexed": false,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "450:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11183,
												"src": "442:14:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11180,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "442:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "407:50:27"
									},
									"src": "381:77:27"
								},
								{
									"anonymous": false,
									"eventSelector": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770",
									"id": 11189,
									"name": "PaymentReceived",
									"nameLocation": "469:15:27",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 11188,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11185,
												"indexed": false,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "493:4:27",
												"nodeType": "VariableDeclaration",
												"scope": 11189,
												"src": "485:12:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11184,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "485:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11187,
												"indexed": false,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "507:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11189,
												"src": "499:14:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11186,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "499:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "484:30:27"
									},
									"src": "463:52:27"
								},
								{
									"constant": false,
									"id": 11191,
									"mutability": "mutable",
									"name": "_totalShares",
									"nameLocation": "537:12:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "521:28:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 11190,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "521:7:27",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11193,
									"mutability": "mutable",
									"name": "_totalReleased",
									"nameLocation": "571:14:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "555:30:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 11192,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "555:7:27",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11197,
									"mutability": "mutable",
									"name": "_shares",
									"nameLocation": "628:7:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "592:43:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
										"typeString": "mapping(address => uint256)"
									},
									"typeName": {
										"id": 11196,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 11194,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "600:7:27",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "592:27:27",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
											"typeString": "mapping(address => uint256)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 11195,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "611:7:27",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11201,
									"mutability": "mutable",
									"name": "_released",
									"nameLocation": "677:9:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "641:45:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
										"typeString": "mapping(address => uint256)"
									},
									"typeName": {
										"id": 11200,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 11198,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "649:7:27",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "641:27:27",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
											"typeString": "mapping(address => uint256)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 11199,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "660:7:27",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11204,
									"mutability": "mutable",
									"name": "_payees",
									"nameLocation": "710:7:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "692:25:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_array$_t_address_$dyn_storage",
										"typeString": "address[]"
									},
									"typeName": {
										"baseType": {
											"id": 11202,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "692:7:27",
											"stateMutability": "nonpayable",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"id": 11203,
										"nodeType": "ArrayTypeName",
										"src": "692:9:27",
										"typeDescriptions": {
											"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
											"typeString": "address[]"
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11209,
									"mutability": "mutable",
									"name": "_erc20TotalReleased",
									"nameLocation": "759:19:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "724:54:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_uint256_$",
										"typeString": "mapping(contract IERC20 => uint256)"
									},
									"typeName": {
										"id": 11208,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 11206,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 11205,
												"name": "IERC20",
												"nameLocations": [
													"732:6:27"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 807,
												"src": "732:6:27"
											},
											"referencedDeclaration": 807,
											"src": "732:6:27",
											"typeDescriptions": {
												"typeIdentifier": "t_contract$_IERC20_$807",
												"typeString": "contract IERC20"
											}
										},
										"nodeType": "Mapping",
										"src": "724:26:27",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_uint256_$",
											"typeString": "mapping(contract IERC20 => uint256)"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 11207,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "742:7:27",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "private"
								},
								{
									"constant": false,
									"id": 11216,
									"mutability": "mutable",
									"name": "_erc20Released",
									"nameLocation": "839:14:27",
									"nodeType": "VariableDeclaration",
									"scope": 11627,
									"src": "784:69:27",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_mapping$_t_address_$_t_uint256_$_$",
										"typeString": "mapping(contract IERC20 => mapping(address => uint256))"
									},
									"typeName": {
										"id": 11215,
										"keyName": "",
										"keyNameLocation": "-1:-1:-1",
										"keyType": {
											"id": 11211,
											"nodeType": "UserDefinedTypeName",
											"pathNode": {
												"id": 11210,
												"name": "IERC20",
												"nameLocations": [
													"792:6:27"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 807,
												"src": "792:6:27"
											},
											"referencedDeclaration": 807,
											"src": "792:6:27",
											"typeDescriptions": {
												"typeIdentifier": "t_contract$_IERC20_$807",
												"typeString": "contract IERC20"
											}
										},
										"nodeType": "Mapping",
										"src": "784:46:27",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_mapping$_t_address_$_t_uint256_$_$",
											"typeString": "mapping(contract IERC20 => mapping(address => uint256))"
										},
										"valueName": "",
										"valueNameLocation": "-1:-1:-1",
										"valueType": {
											"id": 11214,
											"keyName": "",
											"keyNameLocation": "-1:-1:-1",
											"keyType": {
												"id": 11212,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "810:7:27",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"nodeType": "Mapping",
											"src": "802:27:27",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
												"typeString": "mapping(address => uint256)"
											},
											"valueName": "",
											"valueNameLocation": "-1:-1:-1",
											"valueType": {
												"id": 11213,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "821:7:27",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											}
										}
									},
									"visibility": "private"
								},
								{
									"body": {
										"id": 11265,
										"nodeType": "Block",
										"src": "1277:288:27",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11231,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 11227,
																	"name": "payees",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11220,
																	"src": "1295:6:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																		"typeString": "address[] memory"
																	}
																},
																"id": 11228,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "1302:6:27",
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "1295:13:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"expression": {
																	"id": 11229,
																	"name": "shares_",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11223,
																	"src": "1312:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
																		"typeString": "uint256[] memory"
																	}
																},
																"id": 11230,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "1320:6:27",
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "1312:14:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "1295:31:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a2070617965657320616e6420736861726573206c656e677468206d69736d61746368",
															"id": 11232,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "1328:52:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_a5e39d6690ea50b22e040fe9ba22acf868e3d7f78e6ca8dc7ae3224a0aade89f",
																"typeString": "literal_string \"PaymentSplitter: payees and shares length mismatch\""
															},
															"value": "PaymentSplitter: payees and shares length mismatch"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_a5e39d6690ea50b22e040fe9ba22acf868e3d7f78e6ca8dc7ae3224a0aade89f",
																"typeString": "literal_string \"PaymentSplitter: payees and shares length mismatch\""
															}
														],
														"id": 11226,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "1287:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11233,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1287:94:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11234,
												"nodeType": "ExpressionStatement",
												"src": "1287:94:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11239,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 11236,
																	"name": "payees",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11220,
																	"src": "1399:6:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																		"typeString": "address[] memory"
																	}
																},
																"id": 11237,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberLocation": "1406:6:27",
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "1399:13:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 11238,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "1415:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "1399:17:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206e6f20706179656573",
															"id": 11240,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "1418:28:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_f1437b0f4053e38629626a98d8100226576b62fcebc211e7a49225bd05994643",
																"typeString": "literal_string \"PaymentSplitter: no payees\""
															},
															"value": "PaymentSplitter: no payees"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_f1437b0f4053e38629626a98d8100226576b62fcebc211e7a49225bd05994643",
																"typeString": "literal_string \"PaymentSplitter: no payees\""
															}
														],
														"id": 11235,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "1391:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11241,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1391:56:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11242,
												"nodeType": "ExpressionStatement",
												"src": "1391:56:27"
											},
											{
												"body": {
													"id": 11263,
													"nodeType": "Block",
													"src": "1502:57:27",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"baseExpression": {
																			"id": 11255,
																			"name": "payees",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11220,
																			"src": "1526:6:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																				"typeString": "address[] memory"
																			}
																		},
																		"id": 11257,
																		"indexExpression": {
																			"id": 11256,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11244,
																			"src": "1533:1:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "1526:9:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"baseExpression": {
																			"id": 11258,
																			"name": "shares_",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11223,
																			"src": "1537:7:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
																				"typeString": "uint256[] memory"
																			}
																		},
																		"id": 11260,
																		"indexExpression": {
																			"id": 11259,
																			"name": "i",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11244,
																			"src": "1545:1:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "1537:10:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	],
																	"id": 11254,
																	"name": "_addPayee",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11626,
																	"src": "1516:9:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
																		"typeString": "function (address,uint256)"
																	}
																},
																"id": 11261,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "1516:32:27",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 11262,
															"nodeType": "ExpressionStatement",
															"src": "1516:32:27"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 11250,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 11247,
														"name": "i",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11244,
														"src": "1478:1:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 11248,
															"name": "payees",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11220,
															"src": "1482:6:27",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
																"typeString": "address[] memory"
															}
														},
														"id": 11249,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "1489:6:27",
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "1482:13:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "1478:17:27",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 11264,
												"initializationExpression": {
													"assignments": [
														11244
													],
													"declarations": [
														{
															"constant": false,
															"id": 11244,
															"mutability": "mutable",
															"name": "i",
															"nameLocation": "1471:1:27",
															"nodeType": "VariableDeclaration",
															"scope": 11264,
															"src": "1463:9:27",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 11243,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "1463:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 11246,
													"initialValue": {
														"hexValue": "30",
														"id": 11245,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "1475:1:27",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"nodeType": "VariableDeclarationStatement",
													"src": "1463:13:27"
												},
												"loopExpression": {
													"expression": {
														"id": 11252,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "1497:3:27",
														"subExpression": {
															"id": 11251,
															"name": "i",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11244,
															"src": "1497:1:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 11253,
													"nodeType": "ExpressionStatement",
													"src": "1497:3:27"
												},
												"nodeType": "ForStatement",
												"src": "1458:101:27"
											}
										]
									},
									"documentation": {
										"id": 11217,
										"nodeType": "StructuredDocumentation",
										"src": "860:341:27",
										"text": " @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at\n the matching position in the `shares` array.\n All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no\n duplicates in `payees`."
									},
									"id": 11266,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11224,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11220,
												"mutability": "mutable",
												"name": "payees",
												"nameLocation": "1235:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11266,
												"src": "1218:23:27",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
													"typeString": "address[]"
												},
												"typeName": {
													"baseType": {
														"id": 11218,
														"name": "address",
														"nodeType": "ElementaryTypeName",
														"src": "1218:7:27",
														"stateMutability": "nonpayable",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 11219,
													"nodeType": "ArrayTypeName",
													"src": "1218:9:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
														"typeString": "address[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11223,
												"mutability": "mutable",
												"name": "shares_",
												"nameLocation": "1260:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11266,
												"src": "1243:24:27",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
													"typeString": "uint256[]"
												},
												"typeName": {
													"baseType": {
														"id": 11221,
														"name": "uint256",
														"nodeType": "ElementaryTypeName",
														"src": "1243:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 11222,
													"nodeType": "ArrayTypeName",
													"src": "1243:9:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
														"typeString": "uint256[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1217:51:27"
									},
									"returnParameters": {
										"id": 11225,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1277:0:27"
									},
									"scope": 11627,
									"src": "1206:359:27",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11277,
										"nodeType": "Block",
										"src": "2112:62:27",
										"statements": [
											{
												"eventCall": {
													"arguments": [
														{
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 11271,
																"name": "_msgSender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2871,
																"src": "2143:10:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
																	"typeString": "function () view returns (address)"
																}
															},
															"id": 11272,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2143:12:27",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 11273,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "2157:3:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 11274,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "2161:5:27",
															"memberName": "value",
															"nodeType": "MemberAccess",
															"src": "2157:9:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11270,
														"name": "PaymentReceived",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11189,
														"src": "2127:15:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 11275,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2127:40:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11276,
												"nodeType": "EmitStatement",
												"src": "2122:45:27"
											}
										]
									},
									"documentation": {
										"id": 11267,
										"nodeType": "StructuredDocumentation",
										"src": "1571:501:27",
										"text": " @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully\n reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the\n reliability of the events, and not the actual splitting of Ether.\n To learn more about this see the Solidity documentation for\n https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback\n functions]."
									},
									"id": 11278,
									"implemented": true,
									"kind": "receive",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11268,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2084:2:27"
									},
									"returnParameters": {
										"id": 11269,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2112:0:27"
									},
									"scope": 11627,
									"src": "2077:97:27",
									"stateMutability": "payable",
									"virtual": true,
									"visibility": "external"
								},
								{
									"body": {
										"id": 11286,
										"nodeType": "Block",
										"src": "2305:36:27",
										"statements": [
											{
												"expression": {
													"id": 11284,
													"name": "_totalShares",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 11191,
													"src": "2322:12:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11283,
												"id": 11285,
												"nodeType": "Return",
												"src": "2315:19:27"
											}
										]
									},
									"documentation": {
										"id": 11279,
										"nodeType": "StructuredDocumentation",
										"src": "2180:67:27",
										"text": " @dev Getter for the total shares held by payees."
									},
									"functionSelector": "3a98ef39",
									"id": 11287,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "totalShares",
									"nameLocation": "2261:11:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11280,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2272:2:27"
									},
									"returnParameters": {
										"id": 11283,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11282,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11287,
												"src": "2296:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11281,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2296:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2295:9:27"
									},
									"scope": 11627,
									"src": "2252:89:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11295,
										"nodeType": "Block",
										"src": "2485:38:27",
										"statements": [
											{
												"expression": {
													"id": 11293,
													"name": "_totalReleased",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 11193,
													"src": "2502:14:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11292,
												"id": 11294,
												"nodeType": "Return",
												"src": "2495:21:27"
											}
										]
									},
									"documentation": {
										"id": 11288,
										"nodeType": "StructuredDocumentation",
										"src": "2347:78:27",
										"text": " @dev Getter for the total amount of Ether already released."
									},
									"functionSelector": "e33b7de3",
									"id": 11296,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "totalReleased",
									"nameLocation": "2439:13:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11289,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2452:2:27"
									},
									"returnParameters": {
										"id": 11292,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11291,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11296,
												"src": "2476:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11290,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2476:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2475:9:27"
									},
									"scope": 11627,
									"src": "2430:93:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11309,
										"nodeType": "Block",
										"src": "2741:50:27",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 11305,
														"name": "_erc20TotalReleased",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11209,
														"src": "2758:19:27",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_uint256_$",
															"typeString": "mapping(contract IERC20 => uint256)"
														}
													},
													"id": 11307,
													"indexExpression": {
														"id": 11306,
														"name": "token",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11300,
														"src": "2778:5:27",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_IERC20_$807",
															"typeString": "contract IERC20"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "2758:26:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11304,
												"id": 11308,
												"nodeType": "Return",
												"src": "2751:33:27"
											}
										]
									},
									"documentation": {
										"id": 11297,
										"nodeType": "StructuredDocumentation",
										"src": "2529:140:27",
										"text": " @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20\n contract."
									},
									"functionSelector": "d79779b2",
									"id": 11310,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "totalReleased",
									"nameLocation": "2683:13:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11301,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11300,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2704:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11310,
												"src": "2697:12:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 11299,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11298,
														"name": "IERC20",
														"nameLocations": [
															"2697:6:27"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "2697:6:27"
													},
													"referencedDeclaration": 807,
													"src": "2697:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2696:14:27"
									},
									"returnParameters": {
										"id": 11304,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11303,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11310,
												"src": "2732:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11302,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2732:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2731:9:27"
									},
									"scope": 11627,
									"src": "2674:117:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11322,
										"nodeType": "Block",
										"src": "2940:40:27",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 11318,
														"name": "_shares",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11197,
														"src": "2957:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
															"typeString": "mapping(address => uint256)"
														}
													},
													"id": 11320,
													"indexExpression": {
														"id": 11319,
														"name": "account",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11313,
														"src": "2965:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "2957:16:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11317,
												"id": 11321,
												"nodeType": "Return",
												"src": "2950:23:27"
											}
										]
									},
									"documentation": {
										"id": 11311,
										"nodeType": "StructuredDocumentation",
										"src": "2797:75:27",
										"text": " @dev Getter for the amount of shares held by an account."
									},
									"functionSelector": "ce7c2ac2",
									"id": 11323,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "shares",
									"nameLocation": "2886:6:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11314,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11313,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "2901:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11323,
												"src": "2893:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11312,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2893:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2892:17:27"
									},
									"returnParameters": {
										"id": 11317,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11316,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11323,
												"src": "2931:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11315,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2931:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2930:9:27"
									},
									"scope": 11627,
									"src": "2877:103:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11335,
										"nodeType": "Block",
										"src": "3139:42:27",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 11331,
														"name": "_released",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11201,
														"src": "3156:9:27",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
															"typeString": "mapping(address => uint256)"
														}
													},
													"id": 11333,
													"indexExpression": {
														"id": 11332,
														"name": "account",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11326,
														"src": "3166:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "3156:18:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11330,
												"id": 11334,
												"nodeType": "Return",
												"src": "3149:25:27"
											}
										]
									},
									"documentation": {
										"id": 11324,
										"nodeType": "StructuredDocumentation",
										"src": "2986:83:27",
										"text": " @dev Getter for the amount of Ether already released to a payee."
									},
									"functionSelector": "9852595c",
									"id": 11336,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "released",
									"nameLocation": "3083:8:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11327,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11326,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "3100:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11336,
												"src": "3092:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11325,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3092:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3091:17:27"
									},
									"returnParameters": {
										"id": 11330,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11329,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11336,
												"src": "3130:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11328,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3130:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3129:9:27"
									},
									"scope": 11627,
									"src": "3074:107:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11353,
										"nodeType": "Block",
										"src": "3423:54:27",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"baseExpression": {
															"id": 11347,
															"name": "_erc20Released",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11216,
															"src": "3440:14:27",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_mapping$_t_address_$_t_uint256_$_$",
																"typeString": "mapping(contract IERC20 => mapping(address => uint256))"
															}
														},
														"id": 11349,
														"indexExpression": {
															"id": 11348,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11340,
															"src": "3455:5:27",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "IndexAccess",
														"src": "3440:21:27",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
															"typeString": "mapping(address => uint256)"
														}
													},
													"id": 11351,
													"indexExpression": {
														"id": 11350,
														"name": "account",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11342,
														"src": "3462:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "3440:30:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11346,
												"id": 11352,
												"nodeType": "Return",
												"src": "3433:37:27"
											}
										]
									},
									"documentation": {
										"id": 11337,
										"nodeType": "StructuredDocumentation",
										"src": "3187:152:27",
										"text": " @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an\n IERC20 contract."
									},
									"functionSelector": "406072a9",
									"id": 11354,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "released",
									"nameLocation": "3353:8:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11343,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11340,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "3369:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11354,
												"src": "3362:12:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 11339,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11338,
														"name": "IERC20",
														"nameLocations": [
															"3362:6:27"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "3362:6:27"
													},
													"referencedDeclaration": 807,
													"src": "3362:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11342,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "3384:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11354,
												"src": "3376:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11341,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3376:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3361:31:27"
									},
									"returnParameters": {
										"id": 11346,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11345,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11354,
												"src": "3414:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11344,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3414:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3413:9:27"
									},
									"scope": 11627,
									"src": "3344:133:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11366,
										"nodeType": "Block",
										"src": "3623:38:27",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 11362,
														"name": "_payees",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11204,
														"src": "3640:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_array$_t_address_$dyn_storage",
															"typeString": "address[] storage ref"
														}
													},
													"id": 11364,
													"indexExpression": {
														"id": 11363,
														"name": "index",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11357,
														"src": "3648:5:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "3640:14:27",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"functionReturnParameters": 11361,
												"id": 11365,
												"nodeType": "Return",
												"src": "3633:21:27"
											}
										]
									},
									"documentation": {
										"id": 11355,
										"nodeType": "StructuredDocumentation",
										"src": "3483:75:27",
										"text": " @dev Getter for the address of the payee number `index`."
									},
									"functionSelector": "8b83209b",
									"id": 11367,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "payee",
									"nameLocation": "3572:5:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11358,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11357,
												"mutability": "mutable",
												"name": "index",
												"nameLocation": "3586:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11367,
												"src": "3578:13:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11356,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3578:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3577:15:27"
									},
									"returnParameters": {
										"id": 11361,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11360,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11367,
												"src": "3614:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11359,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3614:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3613:9:27"
									},
									"scope": 11627,
									"src": "3563:98:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11394,
										"nodeType": "Block",
										"src": "3813:155:27",
										"statements": [
											{
												"assignments": [
													11376
												],
												"declarations": [
													{
														"constant": false,
														"id": 11376,
														"mutability": "mutable",
														"name": "totalReceived",
														"nameLocation": "3831:13:27",
														"nodeType": "VariableDeclaration",
														"scope": 11394,
														"src": "3823:21:27",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 11375,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "3823:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 11385,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 11384,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"arguments": [
																{
																	"id": 11379,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "3855:4:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_PaymentSplitter_$11627",
																		"typeString": "contract PaymentSplitter"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_PaymentSplitter_$11627",
																		"typeString": "contract PaymentSplitter"
																	}
																],
																"id": 11378,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "3847:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 11377,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "3847:7:27",
																	"typeDescriptions": {}
																}
															},
															"id": 11380,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3847:13:27",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 11381,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "3861:7:27",
														"memberName": "balance",
														"nodeType": "MemberAccess",
														"src": "3847:21:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 11382,
															"name": "totalReleased",
															"nodeType": "Identifier",
															"overloadedDeclarations": [
																11296,
																11310
															],
															"referencedDeclaration": 11296,
															"src": "3871:13:27",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
																"typeString": "function () view returns (uint256)"
															}
														},
														"id": 11383,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3871:15:27",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "3847:39:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3823:63:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 11387,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11370,
															"src": "3919:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 11388,
															"name": "totalReceived",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11376,
															"src": "3928:13:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"id": 11390,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11370,
																	"src": "3952:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 11389,
																"name": "released",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	11336,
																	11354
																],
																"referencedDeclaration": 11336,
																"src": "3943:8:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
																	"typeString": "function (address) view returns (uint256)"
																}
															},
															"id": 11391,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3943:17:27",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11386,
														"name": "_pendingPayment",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11568,
														"src": "3903:15:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (address,uint256,uint256) view returns (uint256)"
														}
													},
													"id": 11392,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3903:58:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11374,
												"id": 11393,
												"nodeType": "Return",
												"src": "3896:65:27"
											}
										]
									},
									"documentation": {
										"id": 11368,
										"nodeType": "StructuredDocumentation",
										"src": "3667:74:27",
										"text": " @dev Getter for the amount of payee's releasable Ether."
									},
									"functionSelector": "a3f8eace",
									"id": 11395,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "releasable",
									"nameLocation": "3755:10:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11371,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11370,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "3774:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11395,
												"src": "3766:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11369,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3766:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3765:17:27"
									},
									"returnParameters": {
										"id": 11374,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11373,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11395,
												"src": "3804:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11372,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3804:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3803:9:27"
									},
									"scope": 11627,
									"src": "3746:222:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11429,
										"nodeType": "Block",
										"src": "4203:176:27",
										"statements": [
											{
												"assignments": [
													11407
												],
												"declarations": [
													{
														"constant": false,
														"id": 11407,
														"mutability": "mutable",
														"name": "totalReceived",
														"nameLocation": "4221:13:27",
														"nodeType": "VariableDeclaration",
														"scope": 11429,
														"src": "4213:21:27",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 11406,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "4213:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 11419,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 11418,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [
															{
																"arguments": [
																	{
																		"id": 11412,
																		"name": "this",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967268,
																		"src": "4261:4:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_PaymentSplitter_$11627",
																			"typeString": "contract PaymentSplitter"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_contract$_PaymentSplitter_$11627",
																			"typeString": "contract PaymentSplitter"
																		}
																	],
																	"id": 11411,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "4253:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 11410,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "4253:7:27",
																		"typeDescriptions": {}
																	}
																},
																"id": 11413,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4253:13:27",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"expression": {
																"id": 11408,
																"name": "token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11399,
																"src": "4237:5:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															},
															"id": 11409,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "4243:9:27",
															"memberName": "balanceOf",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 764,
															"src": "4237:15:27",
															"typeDescriptions": {
																"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
																"typeString": "function (address) view external returns (uint256)"
															}
														},
														"id": 11414,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4237:30:27",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"arguments": [
															{
																"id": 11416,
																"name": "token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11399,
																"src": "4284:5:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_contract$_IERC20_$807",
																	"typeString": "contract IERC20"
																}
															],
															"id": 11415,
															"name": "totalReleased",
															"nodeType": "Identifier",
															"overloadedDeclarations": [
																11296,
																11310
															],
															"referencedDeclaration": 11310,
															"src": "4270:13:27",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$807_$returns$_t_uint256_$",
																"typeString": "function (contract IERC20) view returns (uint256)"
															}
														},
														"id": 11417,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4270:20:27",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "4237:53:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4213:77:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 11421,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11401,
															"src": "4323:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 11422,
															"name": "totalReceived",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11407,
															"src": "4332:13:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"id": 11424,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11399,
																	"src": "4356:5:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	}
																},
																{
																	"id": 11425,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11401,
																	"src": "4363:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$807",
																		"typeString": "contract IERC20"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 11423,
																"name": "released",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	11336,
																	11354
																],
																"referencedDeclaration": 11354,
																"src": "4347:8:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$807_$_t_address_$returns$_t_uint256_$",
																	"typeString": "function (contract IERC20,address) view returns (uint256)"
																}
															},
															"id": 11426,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4347:24:27",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11420,
														"name": "_pendingPayment",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11568,
														"src": "4307:15:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (address,uint256,uint256) view returns (uint256)"
														}
													},
													"id": 11427,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4307:65:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11405,
												"id": 11428,
												"nodeType": "Return",
												"src": "4300:72:27"
											}
										]
									},
									"documentation": {
										"id": 11396,
										"nodeType": "StructuredDocumentation",
										"src": "3974:143:27",
										"text": " @dev Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an\n IERC20 contract."
									},
									"functionSelector": "c45ac050",
									"id": 11430,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "releasable",
									"nameLocation": "4131:10:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11402,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11399,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "4149:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11430,
												"src": "4142:12:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 11398,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11397,
														"name": "IERC20",
														"nameLocations": [
															"4142:6:27"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "4142:6:27"
													},
													"referencedDeclaration": 807,
													"src": "4142:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11401,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "4164:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11430,
												"src": "4156:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11400,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4156:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4141:31:27"
									},
									"returnParameters": {
										"id": 11405,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11404,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11430,
												"src": "4194:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11403,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4194:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4193:9:27"
									},
									"scope": 11627,
									"src": "4122:257:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11481,
										"nodeType": "Block",
										"src": "4630:598:27",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11441,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"baseExpression": {
																	"id": 11437,
																	"name": "_shares",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11197,
																	"src": "4648:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 11439,
																"indexExpression": {
																	"id": 11438,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11433,
																	"src": "4656:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address_payable",
																		"typeString": "address payable"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "4648:16:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 11440,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4667:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "4648:20:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e7420686173206e6f20736861726573",
															"id": 11442,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4670:40:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_41702911e7fdf9741c61509216c070cb4be5837176954fb37acaf958eaff82dd",
																"typeString": "literal_string \"PaymentSplitter: account has no shares\""
															},
															"value": "PaymentSplitter: account has no shares"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_41702911e7fdf9741c61509216c070cb4be5837176954fb37acaf958eaff82dd",
																"typeString": "literal_string \"PaymentSplitter: account has no shares\""
															}
														],
														"id": 11436,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "4640:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11443,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4640:71:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11444,
												"nodeType": "ExpressionStatement",
												"src": "4640:71:27"
											},
											{
												"assignments": [
													11446
												],
												"declarations": [
													{
														"constant": false,
														"id": 11446,
														"mutability": "mutable",
														"name": "payment",
														"nameLocation": "4730:7:27",
														"nodeType": "VariableDeclaration",
														"scope": 11481,
														"src": "4722:15:27",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 11445,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "4722:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 11450,
												"initialValue": {
													"arguments": [
														{
															"id": 11448,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11433,
															"src": "4751:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														],
														"id": 11447,
														"name": "releasable",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															11395,
															11430
														],
														"referencedDeclaration": 11395,
														"src": "4740:10:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
															"typeString": "function (address) view returns (uint256)"
														}
													},
													"id": 11449,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4740:19:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4722:37:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11454,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 11452,
																"name": "payment",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11446,
																"src": "4778:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"hexValue": "30",
																"id": 11453,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4789:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "4778:12:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e74206973206e6f7420647565207061796d656e74",
															"id": 11455,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4792:45:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_57f87f0ebf27afe0d68884e28202f547fd6c4ce1b7243f1356690df65e0fa2e4",
																"typeString": "literal_string \"PaymentSplitter: account is not due payment\""
															},
															"value": "PaymentSplitter: account is not due payment"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_57f87f0ebf27afe0d68884e28202f547fd6c4ce1b7243f1356690df65e0fa2e4",
																"typeString": "literal_string \"PaymentSplitter: account is not due payment\""
															}
														],
														"id": 11451,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "4770:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11456,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4770:68:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11457,
												"nodeType": "ExpressionStatement",
												"src": "4770:68:27"
											},
											{
												"expression": {
													"id": 11460,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 11458,
														"name": "_totalReleased",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11193,
														"src": "5029:14:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "+=",
													"rightHandSide": {
														"id": 11459,
														"name": "payment",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11446,
														"src": "5047:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "5029:25:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 11461,
												"nodeType": "ExpressionStatement",
												"src": "5029:25:27"
											},
											{
												"id": 11468,
												"nodeType": "UncheckedBlock",
												"src": "5064:64:27",
												"statements": [
													{
														"expression": {
															"id": 11466,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"baseExpression": {
																	"id": 11462,
																	"name": "_released",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11201,
																	"src": "5088:9:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 11464,
																"indexExpression": {
																	"id": 11463,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11433,
																	"src": "5098:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address_payable",
																		"typeString": "address payable"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": true,
																"nodeType": "IndexAccess",
																"src": "5088:18:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "+=",
															"rightHandSide": {
																"id": 11465,
																"name": "payment",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11446,
																"src": "5110:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "5088:29:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 11467,
														"nodeType": "ExpressionStatement",
														"src": "5088:29:27"
													}
												]
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 11472,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11433,
															"src": "5156:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														},
														{
															"id": 11473,
															"name": "payment",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11446,
															"src": "5165:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 11469,
															"name": "Address",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2812,
															"src": "5138:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_Address_$2812_$",
																"typeString": "type(library Address)"
															}
														},
														"id": 11471,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "5146:9:27",
														"memberName": "sendValue",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 2616,
														"src": "5138:17:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
															"typeString": "function (address payable,uint256)"
														}
													},
													"id": 11474,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5138:35:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11475,
												"nodeType": "ExpressionStatement",
												"src": "5138:35:27"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 11477,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11433,
															"src": "5204:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														},
														{
															"id": 11478,
															"name": "payment",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11446,
															"src": "5213:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11476,
														"name": "PaymentReleased",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11174,
														"src": "5188:15:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 11479,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5188:33:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11480,
												"nodeType": "EmitStatement",
												"src": "5183:38:27"
											}
										]
									},
									"documentation": {
										"id": 11431,
										"nodeType": "StructuredDocumentation",
										"src": "4385:183:27",
										"text": " @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the\n total shares and their previous withdrawals."
									},
									"functionSelector": "19165587",
									"id": 11482,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "release",
									"nameLocation": "4582:7:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11434,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11433,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "4606:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11482,
												"src": "4590:23:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 11432,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4590:15:27",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4589:25:27"
									},
									"returnParameters": {
										"id": 11435,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4630:0:27"
									},
									"scope": 11627,
									"src": "4573:655:27",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11543,
										"nodeType": "Block",
										"src": "5552:712:27",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11496,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"baseExpression": {
																	"id": 11492,
																	"name": "_shares",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11197,
																	"src": "5570:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 11494,
																"indexExpression": {
																	"id": 11493,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11488,
																	"src": "5578:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "5570:16:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 11495,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5589:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "5570:20:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e7420686173206e6f20736861726573",
															"id": 11497,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5592:40:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_41702911e7fdf9741c61509216c070cb4be5837176954fb37acaf958eaff82dd",
																"typeString": "literal_string \"PaymentSplitter: account has no shares\""
															},
															"value": "PaymentSplitter: account has no shares"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_41702911e7fdf9741c61509216c070cb4be5837176954fb37acaf958eaff82dd",
																"typeString": "literal_string \"PaymentSplitter: account has no shares\""
															}
														],
														"id": 11491,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5562:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11498,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5562:71:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11499,
												"nodeType": "ExpressionStatement",
												"src": "5562:71:27"
											},
											{
												"assignments": [
													11501
												],
												"declarations": [
													{
														"constant": false,
														"id": 11501,
														"mutability": "mutable",
														"name": "payment",
														"nameLocation": "5652:7:27",
														"nodeType": "VariableDeclaration",
														"scope": 11543,
														"src": "5644:15:27",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 11500,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "5644:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 11506,
												"initialValue": {
													"arguments": [
														{
															"id": 11503,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11486,
															"src": "5673:5:27",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"id": 11504,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11488,
															"src": "5680:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 11502,
														"name": "releasable",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															11395,
															11430
														],
														"referencedDeclaration": 11430,
														"src": "5662:10:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$807_$_t_address_$returns$_t_uint256_$",
															"typeString": "function (contract IERC20,address) view returns (uint256)"
														}
													},
													"id": 11505,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5662:26:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5644:44:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11510,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 11508,
																"name": "payment",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11501,
																"src": "5707:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"hexValue": "30",
																"id": 11509,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5718:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "5707:12:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e74206973206e6f7420647565207061796d656e74",
															"id": 11511,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5721:45:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_57f87f0ebf27afe0d68884e28202f547fd6c4ce1b7243f1356690df65e0fa2e4",
																"typeString": "literal_string \"PaymentSplitter: account is not due payment\""
															},
															"value": "PaymentSplitter: account is not due payment"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_57f87f0ebf27afe0d68884e28202f547fd6c4ce1b7243f1356690df65e0fa2e4",
																"typeString": "literal_string \"PaymentSplitter: account is not due payment\""
															}
														],
														"id": 11507,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5699:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11512,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5699:68:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11513,
												"nodeType": "ExpressionStatement",
												"src": "5699:68:27"
											},
											{
												"expression": {
													"id": 11518,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 11514,
															"name": "_erc20TotalReleased",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11209,
															"src": "6017:19:27",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_uint256_$",
																"typeString": "mapping(contract IERC20 => uint256)"
															}
														},
														"id": 11516,
														"indexExpression": {
															"id": 11515,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11486,
															"src": "6037:5:27",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "6017:26:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "+=",
													"rightHandSide": {
														"id": 11517,
														"name": "payment",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11501,
														"src": "6047:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "6017:37:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 11519,
												"nodeType": "ExpressionStatement",
												"src": "6017:37:27"
											},
											{
												"id": 11528,
												"nodeType": "UncheckedBlock",
												"src": "6064:76:27",
												"statements": [
													{
														"expression": {
															"id": 11526,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftHandSide": {
																"baseExpression": {
																	"baseExpression": {
																		"id": 11520,
																		"name": "_erc20Released",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 11216,
																		"src": "6088:14:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_contract$_IERC20_$807_$_t_mapping$_t_address_$_t_uint256_$_$",
																			"typeString": "mapping(contract IERC20 => mapping(address => uint256))"
																		}
																	},
																	"id": 11523,
																	"indexExpression": {
																		"id": 11521,
																		"name": "token",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 11486,
																		"src": "6103:5:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_IERC20_$807",
																			"typeString": "contract IERC20"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "6088:21:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 11524,
																"indexExpression": {
																	"id": 11522,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11488,
																	"src": "6110:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": true,
																"nodeType": "IndexAccess",
																"src": "6088:30:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "Assignment",
															"operator": "+=",
															"rightHandSide": {
																"id": 11525,
																"name": "payment",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11501,
																"src": "6122:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "6088:41:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"id": 11527,
														"nodeType": "ExpressionStatement",
														"src": "6088:41:27"
													}
												]
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 11532,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11486,
															"src": "6173:5:27",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"id": 11533,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11488,
															"src": "6180:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 11534,
															"name": "payment",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11501,
															"src": "6189:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"id": 11529,
															"name": "SafeERC20",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1133,
															"src": "6150:9:27",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_SafeERC20_$1133_$",
																"typeString": "type(library SafeERC20)"
															}
														},
														"id": 11531,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "6160:12:27",
														"memberName": "safeTransfer",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 893,
														"src": "6150:22:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$807_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (contract IERC20,address,uint256)"
														}
													},
													"id": 11535,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6150:47:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11536,
												"nodeType": "ExpressionStatement",
												"src": "6150:47:27"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 11538,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11486,
															"src": "6233:5:27",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															}
														},
														{
															"id": 11539,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11488,
															"src": "6240:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 11540,
															"name": "payment",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11501,
															"src": "6249:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$807",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11537,
														"name": "ERC20PaymentReleased",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11183,
														"src": "6212:20:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC20_$807_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (contract IERC20,address,uint256)"
														}
													},
													"id": 11541,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6212:45:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11542,
												"nodeType": "EmitStatement",
												"src": "6207:50:27"
											}
										]
									},
									"documentation": {
										"id": 11483,
										"nodeType": "StructuredDocumentation",
										"src": "5234:250:27",
										"text": " @dev Triggers a transfer to `account` of the amount of `token` tokens they are owed, according to their\n percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20\n contract."
									},
									"functionSelector": "48b75044",
									"id": 11544,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "release",
									"nameLocation": "5498:7:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11489,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11486,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "5513:5:27",
												"nodeType": "VariableDeclaration",
												"scope": 11544,
												"src": "5506:12:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$807",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 11485,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11484,
														"name": "IERC20",
														"nameLocations": [
															"5506:6:27"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 807,
														"src": "5506:6:27"
													},
													"referencedDeclaration": 807,
													"src": "5506:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$807",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11488,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "5528:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11544,
												"src": "5520:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11487,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5520:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5505:31:27"
									},
									"returnParameters": {
										"id": 11490,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5552:0:27"
									},
									"scope": 11627,
									"src": "5489:775:27",
									"stateMutability": "nonpayable",
									"virtual": true,
									"visibility": "public"
								},
								{
									"body": {
										"id": 11567,
										"nodeType": "Block",
										"src": "6587:91:27",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 11565,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 11563,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"components": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 11560,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 11556,
																		"name": "totalReceived",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 11549,
																		"src": "6605:13:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "*",
																	"rightExpression": {
																		"baseExpression": {
																			"id": 11557,
																			"name": "_shares",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11197,
																			"src": "6621:7:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																				"typeString": "mapping(address => uint256)"
																			}
																		},
																		"id": 11559,
																		"indexExpression": {
																			"id": 11558,
																			"name": "account",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 11547,
																			"src": "6629:7:27",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "6621:16:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "6605:32:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"id": 11561,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "6604:34:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "/",
														"rightExpression": {
															"id": 11562,
															"name": "_totalShares",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11191,
															"src": "6641:12:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "6604:49:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "-",
													"rightExpression": {
														"id": 11564,
														"name": "alreadyReleased",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11551,
														"src": "6656:15:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "6604:67:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 11555,
												"id": 11566,
												"nodeType": "Return",
												"src": "6597:74:27"
											}
										]
									},
									"documentation": {
										"id": 11545,
										"nodeType": "StructuredDocumentation",
										"src": "6270:161:27",
										"text": " @dev internal logic for computing the pending payment of an `account` given the token historical balances and\n already released amounts."
									},
									"id": 11568,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_pendingPayment",
									"nameLocation": "6445:15:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11552,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11547,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "6478:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11568,
												"src": "6470:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11546,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6470:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11549,
												"mutability": "mutable",
												"name": "totalReceived",
												"nameLocation": "6503:13:27",
												"nodeType": "VariableDeclaration",
												"scope": 11568,
												"src": "6495:21:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11548,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6495:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11551,
												"mutability": "mutable",
												"name": "alreadyReleased",
												"nameLocation": "6534:15:27",
												"nodeType": "VariableDeclaration",
												"scope": 11568,
												"src": "6526:23:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11550,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6526:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6460:95:27"
									},
									"returnParameters": {
										"id": 11555,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11554,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11568,
												"src": "6578:7:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11553,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6578:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6577:9:27"
									},
									"scope": 11627,
									"src": "6436:242:27",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "private"
								},
								{
									"body": {
										"id": 11625,
										"nodeType": "Block",
										"src": "6924:403:27",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 11582,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 11577,
																"name": "account",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11571,
																"src": "6942:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 11580,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "6961:1:27",
																		"typeDescriptions": {
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		},
																		"value": "0"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_rational_0_by_1",
																			"typeString": "int_const 0"
																		}
																	],
																	"id": 11579,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "6953:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 11578,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "6953:7:27",
																		"typeDescriptions": {}
																	}
																},
																"id": 11581,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"nameLocations": [],
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6953:10:27",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "6942:21:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e7420697320746865207a65726f2061646472657373",
															"id": 11583,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6965:46:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_22db6c622fd62a15ab5fca8fc78156905c4f1b5914d7d1db97b192b87e8c816b",
																"typeString": "literal_string \"PaymentSplitter: account is the zero address\""
															},
															"value": "PaymentSplitter: account is the zero address"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_22db6c622fd62a15ab5fca8fc78156905c4f1b5914d7d1db97b192b87e8c816b",
																"typeString": "literal_string \"PaymentSplitter: account is the zero address\""
															}
														],
														"id": 11576,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "6934:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11584,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6934:78:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11585,
												"nodeType": "ExpressionStatement",
												"src": "6934:78:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11589,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 11587,
																"name": "shares_",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 11573,
																"src": "7030:7:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 11588,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7040:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "7030:11:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a20736861726573206172652030",
															"id": 11590,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7043:31:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_f9c1be4d5245e2b1590d7367c9c09f1ac5365954d05fed4172915681bdc80ed4",
																"typeString": "literal_string \"PaymentSplitter: shares are 0\""
															},
															"value": "PaymentSplitter: shares are 0"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_f9c1be4d5245e2b1590d7367c9c09f1ac5365954d05fed4172915681bdc80ed4",
																"typeString": "literal_string \"PaymentSplitter: shares are 0\""
															}
														],
														"id": 11586,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "7022:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11591,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7022:53:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11592,
												"nodeType": "ExpressionStatement",
												"src": "7022:53:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 11598,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"baseExpression": {
																	"id": 11594,
																	"name": "_shares",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11197,
																	"src": "7093:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 11596,
																"indexExpression": {
																	"id": 11595,
																	"name": "account",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 11571,
																	"src": "7101:7:27",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "7093:16:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"hexValue": "30",
																"id": 11597,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "7113:1:27",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "7093:21:27",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5061796d656e7453706c69747465723a206163636f756e7420616c72656164792068617320736861726573",
															"id": 11599,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7116:45:27",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_df40dd957dfb1d655a61a3d20a7083773a63031454719eb1eb83074b56cf5635",
																"typeString": "literal_string \"PaymentSplitter: account already has shares\""
															},
															"value": "PaymentSplitter: account already has shares"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_df40dd957dfb1d655a61a3d20a7083773a63031454719eb1eb83074b56cf5635",
																"typeString": "literal_string \"PaymentSplitter: account already has shares\""
															}
														],
														"id": 11593,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "7085:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 11600,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7085:77:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11601,
												"nodeType": "ExpressionStatement",
												"src": "7085:77:27"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 11605,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11571,
															"src": "7186:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"id": 11602,
															"name": "_payees",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11204,
															"src": "7173:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_storage",
																"typeString": "address[] storage ref"
															}
														},
														"id": 11604,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "7181:4:27",
														"memberName": "push",
														"nodeType": "MemberAccess",
														"src": "7173:12:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$",
															"typeString": "function (address[] storage pointer,address)"
														}
													},
													"id": 11606,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7173:21:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11607,
												"nodeType": "ExpressionStatement",
												"src": "7173:21:27"
											},
											{
												"expression": {
													"id": 11612,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 11608,
															"name": "_shares",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11197,
															"src": "7204:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																"typeString": "mapping(address => uint256)"
															}
														},
														"id": 11610,
														"indexExpression": {
															"id": 11609,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11571,
															"src": "7212:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "7204:16:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 11611,
														"name": "shares_",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11573,
														"src": "7223:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "7204:26:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 11613,
												"nodeType": "ExpressionStatement",
												"src": "7204:26:27"
											},
											{
												"expression": {
													"id": 11618,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 11614,
														"name": "_totalShares",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11191,
														"src": "7240:12:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 11617,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"id": 11615,
															"name": "_totalShares",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11191,
															"src": "7255:12:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "+",
														"rightExpression": {
															"id": 11616,
															"name": "shares_",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11573,
															"src": "7270:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "7255:22:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "7240:37:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 11619,
												"nodeType": "ExpressionStatement",
												"src": "7240:37:27"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 11621,
															"name": "account",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11571,
															"src": "7303:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 11622,
															"name": "shares_",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 11573,
															"src": "7312:7:27",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 11620,
														"name": "PayeeAdded",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 11168,
														"src": "7292:10:27",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 11623,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7292:28:27",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 11624,
												"nodeType": "EmitStatement",
												"src": "7287:33:27"
											}
										]
									},
									"documentation": {
										"id": 11569,
										"nodeType": "StructuredDocumentation",
										"src": "6684:174:27",
										"text": " @dev Add a new payee to the contract.\n @param account The address of the payee to add.\n @param shares_ The number of shares owned by the payee."
									},
									"id": 11626,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_addPayee",
									"nameLocation": "6872:9:27",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11574,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11571,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "6890:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11626,
												"src": "6882:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11570,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6882:7:27",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11573,
												"mutability": "mutable",
												"name": "shares_",
												"nameLocation": "6907:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11626,
												"src": "6899:15:27",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11572,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "6899:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6881:34:27"
									},
									"returnParameters": {
										"id": 11575,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6924:0:27"
									},
									"scope": 11627,
									"src": "6863:464:27",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 11645,
							"src": "229:7100:27",
							"usedErrors": [
								860,
								2567,
								2572,
								2575
							],
							"usedEvents": [
								11168,
								11174,
								11183,
								11189
							]
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 11628,
										"name": "PaymentSplitter",
										"nameLocations": [
											"7363:15:27"
										],
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 11627,
										"src": "7363:15:27"
									},
									"id": 11629,
									"nodeType": "InheritanceSpecifier",
									"src": "7363:15:27"
								}
							],
							"canonicalName": "TokenPaymentSplitter",
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 11644,
							"linearizedBaseContracts": [
								11644,
								11627,
								2881
							],
							"name": "TokenPaymentSplitter",
							"nameLocation": "7339:20:27",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"body": {
										"id": 11642,
										"nodeType": "Block",
										"src": "7520:2:27",
										"statements": []
									},
									"id": 11643,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [
										{
											"arguments": [
												{
													"id": 11638,
													"name": "payees",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 11632,
													"src": "7499:6:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
														"typeString": "address[] memory"
													}
												},
												{
													"id": 11639,
													"name": "shares_",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 11635,
													"src": "7507:7:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
														"typeString": "uint256[] memory"
													}
												}
											],
											"id": 11640,
											"kind": "baseConstructorSpecifier",
											"modifierName": {
												"id": 11637,
												"name": "PaymentSplitter",
												"nameLocations": [
													"7483:15:27"
												],
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 11627,
												"src": "7483:15:27"
											},
											"nodeType": "ModifierInvocation",
											"src": "7483:32:27"
										}
									],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11636,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11632,
												"mutability": "mutable",
												"name": "payees",
												"nameLocation": "7424:6:27",
												"nodeType": "VariableDeclaration",
												"scope": 11643,
												"src": "7407:23:27",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
													"typeString": "address[]"
												},
												"typeName": {
													"baseType": {
														"id": 11630,
														"name": "address",
														"nodeType": "ElementaryTypeName",
														"src": "7407:7:27",
														"stateMutability": "nonpayable",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 11631,
													"nodeType": "ArrayTypeName",
													"src": "7407:9:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
														"typeString": "address[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11635,
												"mutability": "mutable",
												"name": "shares_",
												"nameLocation": "7457:7:27",
												"nodeType": "VariableDeclaration",
												"scope": 11643,
												"src": "7440:24:27",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
													"typeString": "uint256[]"
												},
												"typeName": {
													"baseType": {
														"id": 11633,
														"name": "uint256",
														"nodeType": "ElementaryTypeName",
														"src": "7440:7:27",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 11634,
													"nodeType": "ArrayTypeName",
													"src": "7440:9:27",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
														"typeString": "uint256[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7397:73:27"
									},
									"returnParameters": {
										"id": 11641,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7520:0:27"
									},
									"scope": 11644,
									"src": "7385:137:27",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "public"
								}
							],
							"scope": 11645,
							"src": "7330:194:27",
							"usedErrors": [
								860,
								2567,
								2572,
								2575
							],
							"usedEvents": [
								11168,
								11174,
								11183,
								11189
							]
						}
					],
					"src": "32:7495:27"
				},
				"id": 27
			},
			"contracts/factories/ITicketReservationFactory.sol": {
				"ast": {
					"absolutePath": "contracts/factories/ITicketReservationFactory.sol",
					"exportedSymbols": {
						"ITicketReservationFactory": [
							11657
						]
					},
					"id": 11658,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11646,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:28"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "ITicketReservationFactory",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 11657,
							"linearizedBaseContracts": [
								11657
							],
							"name": "ITicketReservationFactory",
							"nameLocation": "74:25:28",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "3299e865",
									"id": 11656,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "deployTicketReservationContract",
									"nameLocation": "114:31:28",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11652,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11649,
												"mutability": "mutable",
												"name": "_admins",
												"nameLocation": "163:7:28",
												"nodeType": "VariableDeclaration",
												"scope": 11656,
												"src": "146:24:28",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
													"typeString": "address[]"
												},
												"typeName": {
													"baseType": {
														"id": 11647,
														"name": "address",
														"nodeType": "ElementaryTypeName",
														"src": "146:7:28",
														"stateMutability": "nonpayable",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"id": 11648,
													"nodeType": "ArrayTypeName",
													"src": "146:9:28",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
														"typeString": "address[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11651,
												"mutability": "mutable",
												"name": "_eventAddress",
												"nameLocation": "179:13:28",
												"nodeType": "VariableDeclaration",
												"scope": 11656,
												"src": "171:21:28",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11650,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "171:7:28",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "145:48:28"
									},
									"returnParameters": {
										"id": 11655,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11654,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11656,
												"src": "211:7:28",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11653,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "211:7:28",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "210:9:28"
									},
									"scope": 11657,
									"src": "105:116:28",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 11658,
							"src": "64:159:28",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:184:28"
				},
				"id": 28
			},
			"contracts/interfaces/IEventContract.sol": {
				"ast": {
					"absolutePath": "contracts/interfaces/IEventContract.sol",
					"exportedSymbols": {
						"IEventContract": [
							11705
						],
						"TixSellEventLibrary": [
							11037
						]
					},
					"id": 11706,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11659,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:29"
						},
						{
							"absolutePath": "contracts/TixSellEventLibrary.sol",
							"file": "../TixSellEventLibrary.sol",
							"id": 11660,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11706,
							"sourceUnit": 11038,
							"src": "66:36:29",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "IEventContract",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 11705,
							"linearizedBaseContracts": [
								11705
							],
							"name": "IEventContract",
							"nameLocation": "113:14:29",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "c0caa772",
									"id": 11665,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "setTicketContract",
									"nameLocation": "148:17:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11663,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11662,
												"mutability": "mutable",
												"name": "_ticketContract",
												"nameLocation": "174:15:29",
												"nodeType": "VariableDeclaration",
												"scope": 11665,
												"src": "166:23:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11661,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "166:7:29",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "165:25:29"
									},
									"returnParameters": {
										"id": 11664,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "200:0:29"
									},
									"scope": 11705,
									"src": "139:62:29",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "bf819c20",
									"id": 11671,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getEvent",
									"nameLocation": "215:8:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11666,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "223:2:29"
									},
									"returnParameters": {
										"id": 11670,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11669,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11671,
												"src": "249:32:29",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_Event_$11036_memory_ptr",
													"typeString": "struct TixSellEventLibrary.Event"
												},
												"typeName": {
													"id": 11668,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11667,
														"name": "TixSellEventLibrary.Event",
														"nameLocations": [
															"249:19:29",
															"269:5:29"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 11036,
														"src": "249:25:29"
													},
													"referencedDeclaration": 11036,
													"src": "249:25:29",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Event_$11036_storage_ptr",
														"typeString": "struct TixSellEventLibrary.Event"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "248:34:29"
									},
									"scope": 11705,
									"src": "206:77:29",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "c1665499",
									"id": 11676,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getTicketTypeContract",
									"nameLocation": "297:21:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11672,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "318:2:29"
									},
									"returnParameters": {
										"id": 11675,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11674,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11676,
												"src": "343:7:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11673,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "343:7:29",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "342:9:29"
									},
									"scope": 11705,
									"src": "288:64:29",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "1354dfa8",
									"id": 11683,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getTicketTypesNbMinted",
									"nameLocation": "366:22:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11679,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11678,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "397:13:29",
												"nodeType": "VariableDeclaration",
												"scope": 11683,
												"src": "389:21:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11677,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "389:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "388:23:29"
									},
									"returnParameters": {
										"id": 11682,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11681,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11683,
												"src": "435:7:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11680,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "435:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "434:9:29"
									},
									"scope": 11705,
									"src": "357:87:29",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "e02ce4b0",
									"id": 11690,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getListOfTicketForTicketType",
									"nameLocation": "458:28:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11686,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11685,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "495:13:29",
												"nodeType": "VariableDeclaration",
												"scope": 11690,
												"src": "487:21:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11684,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "487:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "486:23:29"
									},
									"returnParameters": {
										"id": 11689,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11688,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11690,
												"src": "533:7:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11687,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "533:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "532:9:29"
									},
									"scope": 11705,
									"src": "449:93:29",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "b382aed0",
									"id": 11697,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "addTicketToListOfTicketType",
									"nameLocation": "556:27:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11695,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11692,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "592:13:29",
												"nodeType": "VariableDeclaration",
												"scope": 11697,
												"src": "584:21:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11691,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "584:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11694,
												"mutability": "mutable",
												"name": "_tokenId",
												"nameLocation": "614:8:29",
												"nodeType": "VariableDeclaration",
												"scope": 11697,
												"src": "606:16:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11693,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "606:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "583:40:29"
									},
									"returnParameters": {
										"id": 11696,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "633:0:29"
									},
									"scope": 11705,
									"src": "547:87:29",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "47f6682b",
									"id": 11704,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "addTicketTypesNbTicketMinted",
									"nameLocation": "648:28:29",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11702,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11699,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "685:13:29",
												"nodeType": "VariableDeclaration",
												"scope": 11704,
												"src": "677:21:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11698,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "677:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11701,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "707:6:29",
												"nodeType": "VariableDeclaration",
												"scope": 11704,
												"src": "699:14:29",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11700,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "699:7:29",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "676:38:29"
									},
									"returnParameters": {
										"id": 11703,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "723:0:29"
									},
									"scope": 11705,
									"src": "639:85:29",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 11706,
							"src": "103:624:29",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:688:29"
				},
				"id": 29
			},
			"contracts/interfaces/ITicketReservationContract.sol": {
				"ast": {
					"absolutePath": "contracts/interfaces/ITicketReservationContract.sol",
					"exportedSymbols": {
						"ITicketReservationContract": [
							11740
						],
						"TixSellReservationLibrary": [
							11155
						]
					},
					"id": 11741,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11707,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:30"
						},
						{
							"absolutePath": "contracts/TixSellReservationLibrary.sol",
							"file": "../TixSellReservationLibrary.sol",
							"id": 11708,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11741,
							"sourceUnit": 11156,
							"src": "66:42:30",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "ITicketReservationContract",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 11740,
							"linearizedBaseContracts": [
								11740
							],
							"name": "ITicketReservationContract",
							"nameLocation": "119:26:30",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "758ddfdd",
									"id": 11721,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "createReservationNumber",
									"nameLocation": "159:23:30",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11719,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11710,
												"mutability": "mutable",
												"name": "_reservationNumber",
												"nameLocation": "197:18:30",
												"nodeType": "VariableDeclaration",
												"scope": 11721,
												"src": "183:32:30",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 11709,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "183:6:30",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11712,
												"mutability": "mutable",
												"name": "_owner",
												"nameLocation": "224:6:30",
												"nodeType": "VariableDeclaration",
												"scope": 11721,
												"src": "216:14:30",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11711,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "216:7:30",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11714,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "240:13:30",
												"nodeType": "VariableDeclaration",
												"scope": 11721,
												"src": "232:21:30",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11713,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "232:7:30",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11716,
												"mutability": "mutable",
												"name": "_amount",
												"nameLocation": "263:7:30",
												"nodeType": "VariableDeclaration",
												"scope": 11721,
												"src": "255:15:30",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11715,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "255:7:30",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11718,
												"mutability": "mutable",
												"name": "_existingBalance",
												"nameLocation": "279:16:30",
												"nodeType": "VariableDeclaration",
												"scope": 11721,
												"src": "271:24:30",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11717,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "271:7:30",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "182:114:30"
									},
									"returnParameters": {
										"id": 11720,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "306:0:30"
									},
									"scope": 11740,
									"src": "150:157:30",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "99e4b8e1",
									"id": 11726,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "cancelReservation",
									"nameLocation": "320:17:30",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11724,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11723,
												"mutability": "mutable",
												"name": "_reservationNumber",
												"nameLocation": "352:18:30",
												"nodeType": "VariableDeclaration",
												"scope": 11726,
												"src": "338:32:30",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 11722,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "338:6:30",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "337:34:30"
									},
									"returnParameters": {
										"id": 11725,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "381:0:30"
									},
									"scope": 11740,
									"src": "311:71:30",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "f8c373e4",
									"id": 11734,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "checkReservation",
									"nameLocation": "395:16:30",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11729,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11728,
												"mutability": "mutable",
												"name": "_reservationNumber",
												"nameLocation": "426:18:30",
												"nodeType": "VariableDeclaration",
												"scope": 11734,
												"src": "412:32:30",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 11727,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "412:6:30",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "411:34:30"
									},
									"returnParameters": {
										"id": 11733,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11732,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11734,
												"src": "470:50:30",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_TicketReservation_$11154_memory_ptr",
													"typeString": "struct TixSellReservationLibrary.TicketReservation"
												},
												"typeName": {
													"id": 11731,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11730,
														"name": "TixSellReservationLibrary.TicketReservation",
														"nameLocations": [
															"470:25:30",
															"496:17:30"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 11154,
														"src": "470:43:30"
													},
													"referencedDeclaration": 11154,
													"src": "470:43:30",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketReservation_$11154_storage_ptr",
														"typeString": "struct TixSellReservationLibrary.TicketReservation"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "469:52:30"
									},
									"scope": 11740,
									"src": "386:137:30",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "83650320",
									"id": 11739,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "burnReservation",
									"nameLocation": "537:15:30",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11737,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11736,
												"mutability": "mutable",
												"name": "_reservationNumber",
												"nameLocation": "567:18:30",
												"nodeType": "VariableDeclaration",
												"scope": 11739,
												"src": "553:32:30",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 11735,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "553:6:30",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "552:34:30"
									},
									"returnParameters": {
										"id": 11738,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "597:0:30"
									},
									"scope": 11740,
									"src": "528:70:30",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 11741,
							"src": "109:491:30",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:561:30"
				},
				"id": 30
			},
			"contracts/interfaces/ITicketTypeContract.sol": {
				"ast": {
					"absolutePath": "contracts/interfaces/ITicketTypeContract.sol",
					"exportedSymbols": {
						"ITicketTypeContract": [
							11774
						],
						"TixSellLibrary": [
							11135
						]
					},
					"id": 11775,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11742,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:31"
						},
						{
							"absolutePath": "contracts/TixSellLibraries.sol",
							"file": "../TixSellLibraries.sol",
							"id": 11743,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11775,
							"sourceUnit": 11136,
							"src": "64:33:31",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "ITicketTypeContract",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 11774,
							"linearizedBaseContracts": [
								11774
							],
							"name": "ITicketTypeContract",
							"nameLocation": "108:19:31",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "19d01a5c",
									"id": 11753,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "createTicketType",
									"nameLocation": "148:16:31",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11749,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11745,
												"mutability": "mutable",
												"name": "_eventDate",
												"nameLocation": "173:10:31",
												"nodeType": "VariableDeclaration",
												"scope": 11753,
												"src": "165:18:31",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11744,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "165:7:31",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11748,
												"mutability": "mutable",
												"name": "_ticketTypeData",
												"nameLocation": "217:15:31",
												"nodeType": "VariableDeclaration",
												"scope": 11753,
												"src": "184:48:31",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
													"typeString": "struct TixSellLibrary.TicketType"
												},
												"typeName": {
													"id": 11747,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11746,
														"name": "TixSellLibrary.TicketType",
														"nameLocations": [
															"184:14:31",
															"199:10:31"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 11116,
														"src": "184:25:31"
													},
													"referencedDeclaration": 11116,
													"src": "184:25:31",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
														"typeString": "struct TixSellLibrary.TicketType"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "164:69:31"
									},
									"returnParameters": {
										"id": 11752,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11751,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "261:13:31",
												"nodeType": "VariableDeclaration",
												"scope": 11753,
												"src": "253:21:31",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11750,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "253:7:31",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "252:23:31"
									},
									"scope": 11774,
									"src": "139:138:31",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "2e990964",
									"id": 11758,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "deleteTicketType",
									"nameLocation": "291:16:31",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11756,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11755,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "316:13:31",
												"nodeType": "VariableDeclaration",
												"scope": 11758,
												"src": "308:21:31",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11754,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "308:7:31",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "307:23:31"
									},
									"returnParameters": {
										"id": 11757,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "341:0:31"
									},
									"scope": 11774,
									"src": "282:60:31",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "8addbf3c",
									"id": 11766,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getTicketTypeInfo",
									"nameLocation": "356:17:31",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11761,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11760,
												"mutability": "mutable",
												"name": "_ticketTypeId",
												"nameLocation": "382:13:31",
												"nodeType": "VariableDeclaration",
												"scope": 11766,
												"src": "374:21:31",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 11759,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "374:7:31",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "373:23:31"
									},
									"returnParameters": {
										"id": 11765,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11764,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11766,
												"src": "420:32:31",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_TicketType_$11116_memory_ptr",
													"typeString": "struct TixSellLibrary.TicketType"
												},
												"typeName": {
													"id": 11763,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11762,
														"name": "TixSellLibrary.TicketType",
														"nameLocations": [
															"420:14:31",
															"435:10:31"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 11116,
														"src": "420:25:31"
													},
													"referencedDeclaration": 11116,
													"src": "420:25:31",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
														"typeString": "struct TixSellLibrary.TicketType"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "419:34:31"
									},
									"scope": 11774,
									"src": "347:107:31",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "28a89e19",
									"id": 11773,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "fetchTicketsType",
									"nameLocation": "468:16:31",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11767,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "484:2:31"
									},
									"returnParameters": {
										"id": 11772,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11771,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 11773,
												"src": "511:34:31",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_TicketType_$11116_memory_ptr_$dyn_memory_ptr",
													"typeString": "struct TixSellLibrary.TicketType[]"
												},
												"typeName": {
													"baseType": {
														"id": 11769,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 11768,
															"name": "TixSellLibrary.TicketType",
															"nameLocations": [
																"511:14:31",
																"526:10:31"
															],
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 11116,
															"src": "511:25:31"
														},
														"referencedDeclaration": 11116,
														"src": "511:25:31",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_TicketType_$11116_storage_ptr",
															"typeString": "struct TixSellLibrary.TicketType"
														}
													},
													"id": 11770,
													"nodeType": "ArrayTypeName",
													"src": "511:27:31",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_TicketType_$11116_storage_$dyn_storage_ptr",
														"typeString": "struct TixSellLibrary.TicketType[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "510:36:31"
									},
									"scope": 11774,
									"src": "459:88:31",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 11775,
							"src": "98:456:31",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:515:31"
				},
				"id": 31
			},
			"contracts/interfaces/ITixSellNftTemplate.sol": {
				"ast": {
					"absolutePath": "contracts/interfaces/ITixSellNftTemplate.sol",
					"exportedSymbols": {
						"ITixSellNftTemplateContract": [
							11790
						],
						"TixSellLibrary": [
							11135
						]
					},
					"id": 11791,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 11776,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".20"
							],
							"nodeType": "PragmaDirective",
							"src": "39:24:32"
						},
						{
							"absolutePath": "contracts/TixSellLibraries.sol",
							"file": "../TixSellLibraries.sol",
							"id": 11777,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 11791,
							"sourceUnit": 11136,
							"src": "66:33:32",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "ITixSellNftTemplateContract",
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 11790,
							"linearizedBaseContracts": [
								11790
							],
							"name": "ITixSellNftTemplateContract",
							"nameLocation": "110:27:32",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "6c0bc1a0",
									"id": 11789,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "getURI",
									"nameLocation": "159:6:32",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 11785,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11779,
												"mutability": "mutable",
												"name": "_ticketAddress",
												"nameLocation": "174:14:32",
												"nodeType": "VariableDeclaration",
												"scope": 11789,
												"src": "166:22:32",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 11778,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "166:7:32",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11782,
												"mutability": "mutable",
												"name": "nftTicketInfo",
												"nameLocation": "226:13:32",
												"nodeType": "VariableDeclaration",
												"scope": 11789,
												"src": "190:49:32",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_NftTicketInfo_$11134_memory_ptr",
													"typeString": "struct TixSellLibrary.NftTicketInfo"
												},
												"typeName": {
													"id": 11781,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 11780,
														"name": "TixSellLibrary.NftTicketInfo",
														"nameLocations": [
															"190:14:32",
															"205:13:32"
														],
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 11134,
														"src": "190:28:32"
													},
													"referencedDeclaration": 11134,
													"src": "190:28:32",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_NftTicketInfo_$11134_storage_ptr",
														"typeString": "struct TixSellLibrary.NftTicketInfo"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 11784,
												"mutability": "mutable",
												"name": "revealed",
												"nameLocation": "245:8:32",
												"nodeType": "VariableDeclaration",
												"scope": 11789,
												"src": "240:13:32",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 11783,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "240:4:32",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "165:89:32"
									},
									"returnParameters": {
										"id": 11788,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 11787,
												"mutability": "mutable",
												"name": "finalSVG",
												"nameLocation": "317:8:32",
												"nodeType": "VariableDeclaration",
												"scope": 11789,
												"src": "303:22:32",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 11786,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "303:6:32",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "302:24:32"
									},
									"scope": 11790,
									"src": "150:177:32",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 11791,
							"src": "100:238:32",
							"usedErrors": [],
							"usedEvents": []
						}
					],
					"src": "39:299:32"
				},
				"id": 32
			}
		}
	}
}